[SOLVED]Qt Throwing error when attempting to compile android APK
-
I have been trying to compile the hello world application for mobile and it just won't compile, I tried switching the build targets and all. I am good on desktop programming but just started on mobile. I have linked the SDK,NDK,Ant and JDK correctly and installed the android API. I restarted several times(both my pc and Qt) but nothing seems to fix this issue.
21:02:18: Running steps for project CopyMe... 21:02:18: Configuration unchanged, skipping qmake step. 21:02:18: Starting: "C:\Qt\Tools\mingw482_32\bin\mingw32-make.exe" mingw32-make: Nothing to be done for 'first'. 21:02:19: The process "C:\Qt\Tools\mingw482_32\bin\mingw32-make.exe" exited normally. 21:02:19: Removing directory C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build 21:02:19: Starting: "C:\Qt\Tools\mingw482_32\bin\mingw32-make.exe" INSTALL_ROOT="C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build" install copy /y "libCopyMe.so" "C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\libs\armeabi\libCopyMe.so" 1 file(s) copied. 21:02:20: The process "C:\Qt\Tools\mingw482_32\bin\mingw32-make.exe" exited normally. 21:02:20: Starting: "C:\Qt\5.3\android_armv5\bin\androiddeployqt.exe" --input C:/Users/Roberto/Desktop/build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug/android-libCopyMe.so-deployment-settings.json --output C:/Users/Roberto/Desktop/build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug/android-build --deployment bundled --android-platform android-22 --jdk "C:/Program Files (x86)/Java/jdk1.8.0_45" --ant C:/Users/Roberto/Desktop/apache-ant-1.9.5/bin/ant.bat BUILD FAILED C:\Users\Roberto\AppData\Local\Android\sdk\tools\ant\build.xml:649: The following error occurred while executing this line: C:\Users\Roberto\AppData\Local\Android\sdk\tools\ant\build.xml:655: Execute failed: java.io.IOException: Cannot run program "C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\${aidl}": CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at java.lang.Runtime.exec(Runtime.java:620) at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58) at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428) at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442) at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:629) at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:670) at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:496) at com.android.ant.AidlExecTask$AidlProcessor.process(AidlExecTask.java:102) at com.android.ant.MultiFilesTask.processFiles(MultiFilesTask.java:131) at com.android.ant.AidlExecTask.execute(AidlExecTask.java:203) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at com.android.ant.IfElseTask.execute(IfElseTask.java:120) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:435) at org.apache.tools.ant.Target.performTasks(Target.java:456) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405) at org.apache.tools.ant.Project.executeTarget(Project.java:1376) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1260) at org.apache.tools.ant.Main.runBuild(Main.java:853) at org.apache.tools.ant.Main.startAnt(Main.java:235) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112) Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(ProcessImpl.java:386) at java.lang.ProcessImpl.start(ProcessImpl.java:137) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ... 48 more Total time: 0 seconds Generating Android Package Input file: C:/Users/Roberto/Desktop/build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug/android-libCopyMe.so-deployment-settings.json Output directory: C:/Users/Roberto/Desktop/build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug/android-build Application binary: C:/Users/Roberto/Desktop/build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug/libCopyMe.so Android build platform: android-22 Install to device: No Buildfile: C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\build.xml -set-mode-check: -set-debug-files: -check-env: [checkenv] Android SDK Tools Revision 24.3.2 [checkenv] Installed at C:\Users\Roberto\AppData\Local\Android\sdk -setup: [echo] Project Name: QtApp [gettype] Project Type: Application -set-debug-mode: -debug-obfuscation-check: -pre-build: -build-setup: [getbuildtools] Using latest Build Tools: 22.0.1 [echo] Resolving Build Target for QtApp... Building the android package failed! -- For more information, run this command with --verbose. [gettarget] Project Target: Android 5.1.1 [gettarget] API level: 22 [echo] ---------- [echo] Creating output directories if needed... [mkdir] Created dir: C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\bin [mkdir] Created dir: C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\bin\res [mkdir] Created dir: C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\bin\rsObj [mkdir] Created dir: C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\bin\rsLibs [mkdir] Created dir: C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\gen [mkdir] Created dir: C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\bin\classes [mkdir] Created dir: C:\Users\Roberto\Desktop\build-CopyMe-Android_for_armeabi_GCC_4_9_Qt_5_3_2-Debug\android-build\bin\dexedLibs [echo] ---------- [echo] Resolving Dependencies for QtApp... [dependency] Library dependencies: [dependency] No Libraries [dependency] [dependency] ------------------ [echo] ---------- [echo] Building Libraries with 'debug'... [subant] No sub-builds to iterate on -code-gen: [mergemanifest] Merging AndroidManifest files into one. [mergemanifest] Manifest merger disabled. Using project manifest only. [echo] Handling aidl files... [aidl] Found 2 AIDL files. [aidl] Compiling 2 AIDL files. 21:02:24: The process "C:\Qt\5.3\android_armv5\bin\androiddeployqt.exe" exited with code 14. Error while building/deploying project CopyMe (kit: Android for armeabi (GCC 4.9, Qt 5.3.2)) When executing step "Build Android APK" 21:02:24: Elapsed time: 00:06.
-
Did you updat e your Android sdk tools? That is all I can think of that I changed, and I am now getting that issue
-
I think I have the same error, but in my case, I use Kubuntu 14.04 64 bits, Qt 5.4.2 and Qt Creator 3.4.1. I use the API for Android 4.0.3, but I tried others newer and the bug remains. I have installed Android SDK Tools 24.3.2, Android SDK Platforms-tools 22 and Android SDK Build-tools 22.0.1, 21.1.2, 20 and 19.1.
I tried several versions of Java like OpenJDK 6, OpenJDK 7 (both from Ubuntu's repo) and Oracle JDK 8 (from the websites). I tried Ant from the repo and the current version from Apache's website and I always get the same error.
I was thinking in reinstalling Kubuntu because everything is good. Compilers are OK, Qt versions are OK, I have the the g++-arm-linux-gnueabihf package installed, so I don't know what I'm doing bad, and IDE doesn't give me meaningful information to find a solution.
Here is the code that Qt Creator shows me when I try to compile for Android:
17:14:49: Running steps for project 031-CohetesAndroid-C029... 17:14:49: Configuration unchanged, skipping qmake step. 17:14:49: Starting: "/usr/bin/make" make: Nothing to be done for `first'. 17:14:49: The process "/usr/bin/make" exited normally. 17:14:49: Removing directory /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build 17:14:49: Starting: "/usr/bin/make" INSTALL_ROOT=/home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build install install -m 755 -p "lib031-CohetesAndroid-C029.so" "/home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/libs/armeabi-v7a/lib031-CohetesAndroid-C029.so" 17:14:49: The process "/usr/bin/make" exited normally. 17:14:49: Starting: "/opt/Qt5/5.4/android_armv7/bin/androiddeployqt" --input /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-lib031-CohetesAndroid-C029.so-deployment-settings.json --output /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build --deployment bundled --android-platform android-15 --jdk /usr/lib/jvm/java-6-openjdk-amd64 --ant /usr/bin/ant Generating Android Package Input file: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-lib031-CohetesAndroid-C029.so-deployment-settings.json Output directory: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/ Application binary: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/lib031-CohetesAndroid-C029.so Android build platform: android-15 Install to device: No Buildfile: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/build.xml -set-mode-check: -set-debug-files: -check-env: [checkenv] Android SDK Tools Revision 24.3.2 [checkenv] Installed at /home/cold_distance/bin/android-sdk-linux -setup: [echo] Project Name: QtApp [gettype] Project Type: Application -set-debug-mode: -debug-obfuscation-check: -pre-build: -build-setup: [getbuildtools] Using latest Build Tools: 22.0.1 [echo] Resolving Build Target for QtApp... [gettarget] Project Target: Android 4.0.3 [gettarget] API level: 15 [echo] ---------- [echo] Creating output directories if needed... [mkdir] Created dir: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/bin [mkdir] Created dir: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/bin/res [mkdir] Created dir: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/bin/rsObj [mkdir] Created dir: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/bin/rsLibs [mkdir] Created dir: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/gen [mkdir] Created dir: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/bin/classes [mkdir] Created dir: /home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/bin/dexedLibs [echo] ---------- [echo] Resolving Dependencies for QtApp... [dependency] Library dependencies: [dependency] No Libraries [dependency] [dependency] ------------------ [dependency] API<=15: Adding annotations.jar to the classpath. [echo] ---------- [echo] Building Libraries with 'debug'... [subant] No sub-builds to iterate on -code-gen: [mergemanifest] Merging AndroidManifest files into one. [mergemanifest] Manifest merger disabled. Using project manifest only. [echo] Handling aidl files... [aidl] Found 2 AIDL files. [aidl] Compiling 2 AIDL files. BUILD FAILED /home/cold_distance/bin/android-sdk-linux/tools/ant/build.xml:649: The following error occurred while executing this line: /home/cold_distance/bin/android-sdk-linux/tools/ant/build.xml:655: Execute failed: java.io.IOException: Cannot run program "/home/cold_distance/Qt/build-031-CohetesAndroid-C029-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/${aidl}": java.io.IOException: error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:494) at java.lang.Runtime.exec(Runtime.java:612) at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:41) at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428) at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442) at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:628) at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669) at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495) at com.android.ant.AidlExecTask$AidlProcessor.process(AidlExecTask.java:102) at com.android.ant.MultiFilesTask.processFiles(MultiFilesTask.java:131) at com.android.ant.AidlExecTask.execute(AidlExecTask.java:203) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:622) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at com.android.ant.IfElseTask.execute(IfElseTask.java:120) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:622) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:622) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:622) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:435) at org.apache.tools.ant.Target.performTasks(Target.java:456) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) at org.apache.tools.ant.Project.executeTarget(Project.java:1364) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1248) at org.apache.tools.ant.Main.runBuild(Main.java:851) at org.apache.tools.ant.Main.startAnt(Main.java:235) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.<init>(UNIXProcess.java:164) at java.lang.ProcessImpl.start(ProcessImpl.java:81) at java.lang.ProcessBuilder.start(ProcessBuilder.java:476) ... 48 more Total time: 1 second Building the android package failed! -- For more information, run this command with --verbose. 17:14:52: The process "/opt/Qt5/5.4/android_armv7/bin/androiddeployqt" exited with code 14. Error while building/deploying project 031-CohetesAndroid-C029 (kit: Android for armeabi-v7a (GCC 4.9, Qt 5.4.2)) When executing step "Build Android APK" 17:14:52: Elapsed time: 00:03.
-
I just reloaded my laptop and started getting this error with the latest QtCreator community edition and latest Android Studio / Android SDK setup.
Unfortunately I never found the cause of the error using ant. I did try adding the "<ANDROID-SDK>/build-tools/<version>/" directory to my path as that is where the aidl executable is but that did not alleviate the issue.
I was able to get my APK built by telling QtCreator to use gradle instead of ant.
In QtCreator -> Projects -> Build & Run -> { android kit (build) } -> Build Android APK -> Advanced Actions -> Use Gradle checkbox.
I started getting a different error I believe was related to Android build tools version. Android studio automatically installed Android Build Tools 23.0.0.R2 preview. I uninstalled the preview and left Android Build Tools V 22.0.1.
I cleaned my Qt Project, ran qmake, and rebuilt project.
Hope this helps. I'd love to know if anyone figures out the problem without switching to gradle.
-Tom
-
Thanks a lot for the advice and idea's to fix this problem, I will let you guys know if I can fix it myself when I have access to my computer. I felt frustrated and gave up but it's good to know I might be able to finally compile.
-
Use the latest version of the SDK(At this time 24.3.3), Use Ant(Gradle still won't work), Use the latest NDK and latest Qt Creator Release.(5.4 at this time). That's what I did to get it to work for me. Large thanks to sk2212 and all the other idea's!