Android app doesn't run
-
@JoeCFD can't find a thing.
I regenerated the templates, and now am getting a build error:
> Failed to apply plugin 'com.android.internal.version-check'. > Minimum supported Gradle version is 7.5. Current version is 7.4.2.
Didn't Gradle get installed for me when I chose the Android option in the Qt installer? I'm wondering how I should go about updating it.
EDIT: apparently changing this line:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
in the gradle-wrapper.properties resolved that issue. I copied back my manifest file, and am back to the original issue:
Activity Manager threw the error: Error type 3 Error: Activity class {nga.demo/org.qtproject.qt.android.bindings.QtActivity} does not exist.
So, I'm back to my original question: what should I change this line to?
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="nga.demo" android:installLocation="auto" android:versionCode="1" android:versionName="1.0.2">
-
@mzimmers No, Qt installer does not do it as I remember. There is a place you can change gradle version number in the installed Qt.
You are using Java 18? from here:
https://docs.gradle.org/current/userguide/compatibility.htmlEven the latest Android 14(API 34) requires only Java 17. Scroll down from here:
https://developer.android.com/build/jdksYou can try to set
package="org.nga.appyyy"
if nga is your company name and appyy your project name.
That is the format I use. I saw someone wrote org seems needed. We need to document this in the forum somewhere. We waste so much time for this kind of issues. -
@JoeCFD well, as it turns out, it doesn't appear to be related to my changing the project name -- I had an old copy of the project, and that fails in the same way. (It had been awhile since I bothered trying to load to the tablet.)
I'm going to re-title this topic, as the current title is incorrect.
-
@mzimmers what are your Qt and QtCreator versions ?
and Android target API ? -
@ekkescorner
Qt 6.5.3
Creator 11.0.3Not sure what an Android target API is - unless you mean arm64-v8a.
-
@mzimmers arm64-v8a is the architecture - in this case arm 64bit
in QMake:
under Build Android APK Android Build Platform SDK is set to android-33 (Android 13), Android Build Tools are 33.0.2
and in .pro I have set Min SDK and target SDK:
ANDROID_MIN_SDK_VERSION = "23"
ANDROID_TARGET_SDK_VERSION = "33"
For me - working on macOS - I never have to install Gradle or so. it's working.
I always do 'Create Templates' as you have done. Sometimes I had problems creating templates and 'Replace all' - have done 'replace' for each file extra.
I'm using Qt 6.6 and QtC 11.0.2
Have no idea how this will be with CMake. Just fighting with my last 5.15 App-port to 6.6 (QMake), so soon will enter CMake ;-)BTW: as @JoeCFD said: as packageName you should use your domain in reverse order together with a short app name, per ex. org.yourname.yourAppName and this must be unique. the packageName is independent from project name, per ex for a customer I'm building APKs with different packageNames like: de.theCustomer.theApp.test and de.theCustomer.theApp.prod while the project has a different name: theCustomer_theApp
-
This post is deleted!
-
Hi all -
I need to bump this, because I really need to get this app running on Android. I created a new, minimal project, and I'm still getting the error:
Error: Activity class {org.qtproject.example.minimal_map/org.qtproject.qt.android.bindings.QtActivity} does not exist.
I'm guessing it has something to do with my manifest file, and here's where I need help. I really don't understand most of the fields in this display:
So, a few questions:- the fields that look like: -- %%INSERT_APP_NAME%% --; am I supposed to replaceeverything with my own values, or do I keep the dashes and "%"?
- do I need to replace all of those fields?
- what exactly is an "activity name?" My searches haven't revealed much.
Thanks for any assistance...
-
@mzimmers said in Android app doesn't run:
the fields that look like: -- %%INSERT_APP_NAME%% --; am I supposed to replaceeverything with my own values, or do I keep the dashes and "%"?
do I need to replace all of those fields?if you don't replace the values, then QtCreator will fill this value. After building the project, you can go to the build dir, find the manifest and open to see what vaklues QtC inserted.
In my apps I always put my own value in, per ex. QtWS for the QtWorldSummit App.
if you change the value, switch editor to xml source to see that Application label (https://developer.android.com/guide/topics/manifest/application-element#label) and Activity label (https://developer.android.com/guide/topics/manifest/activity-element#label) changed.what exactly is an "activity name?" My searches haven't revealed much.
see above. simply search for "android manifest doc" -
@mzimmers said in Android app doesn't run:
I created a new, minimal project, and I'm still getting the error:
Quick sanity check: Do you get the error if create a new, minimal project and run it on Android without doing anything at all to the manifest file? In other words, just create the project and build + run it.
I'm guessing it has something to do with my manifest file, and here's where I need help. I really don't understand most of the fields in this display:
Be warned, that manifest editor is badly broken: https://bugreports.qt.io/browse/QTCREATORBUG-27119 I recommend that you don't touch it -- even the act of opening that editor is enough to corrupt the manifest file in some cases.
-
@JKSH said in Android app doesn't run:
Be warned, that manifest editor is badly broken: https://bugreports.qt.io/browse/QTCREATORBUG-27119 I recommend that you don't touch it -- even the act of opening that editor is enough to corrupt the manifest file in some cases.
also have noticed that opening with Manifest Editor sometimes changes the content. But in my cases it was only a reformatting / reordering and nothing destroyed. (QtC 12.0.1)
BTW: I'm getting best experiences this way:
- Update Templates
- check changes (using git)
- add / replace with my settings
this way I'm always getting the newest recommended values
-
@ekkescorner said in Android app doesn't run:
check changes (using git)
Could you elaborate on this? Changes to what, exactly?
-
@mzimmers see here what I did while updating from 5.15 to 6.6:
https://t1p.de/ekkeAndroidTemplates66
this will give you the idea how I'm doing this -
@JKSH thanks for the warning about the manifest editor -- it looks like TQC has painted itself into a corner on this one.
I was going to try your suggestion, but now I have a different problem: my Android device shows as "disconnected" and I can't figure out what to do about this.
-
@ekkescorner that's a great page. I'm using 6.5.3; do you think your suggestions will work with this version?
-
@mzimmers will be similar, but not the same. per ex. the Qt FileProvider only exists in 6.6+
-
@mzimmers said in Android app doesn't run:
my Android device shows as "disconnected"
connected via wifi or via usb cable ?
-
@ekkescorner USB cable. I deleted that device, and am trying to create a new one, but it keeps trying to make an emulator, not a "real" Android device.
-
@mzimmers creating devices is for emulators. to connect via USB see https://t1p.de/ekkeManageDevices