构建 Qt Android 应用程序失败 [英] Building Qt Android App fails

查看:88
本文介绍了构建 Qt Android 应用程序失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Ubuntu 14.04 上使用 Qt5.4.1.我已经在 Android SDK 管理器中安装了 Android SDK Tools 24.1.2、Android SDK Platform-tools 22、Android SDK Build-tools 22.0.1 和 API22.

我已经安装了 java-7-openjdk-amd64 并在 Qt Creator 3.3.1 中添加了 Android SDK、Android NDK、java-7-openjdk-amd64 和 apache-ant-1.9.4 的路径.

如果我创建一个项目和构建,我会收到此错误:

07:40:06: 项目 android01 的运行步骤...07:40:06:配置不变,跳过 qmake 步骤.07:40:06:开始:/usr/bin/make"make:first"无需做任何事情.07:40:06:进程/usr/bin/make"正常退出.07:40:06:删除目录/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build07:40:06:开始:/usr/bin/make"INSTALL_ROOT=/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build installinstall -m 755 -p "libandroid01.so" "/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/libs/armeabi-v7a/libandroid01.so"07:40:06:进程/usr/bin/make"正常退出.07:40:06:开始:/home/user/Qt5/5.4/android_armv7/bin/androiddeployqt"--input/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-libdeployment-settings.json --output/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build --deployment bundled --android-platform android-22 --jdk/usr/lib/jvm/java-7-openjdk-amd64 --ant/home/user/apache-ant-1.9.4/bin/ant生成 Android 包输入文件:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-libandroid01.so-deployment-settings.json输出目录:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/应用程序二进制文件:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/libandroid01.so安卓构建平台:android-22安装到设备:否构建文件:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/build.xml-设置模式检查:-设置调试文件:-检查环境:[checkenv] Android SDK 工具修订版 24.1.2[checkenv] 安装在/home/user/android-sdk-linux-设置:[echo] 项目名称:QtApp[gettype] 项目类型:应用-设置调试模式:-调试混淆检查:- 预构建:- 构建设置:[getbuildtools] 使用最新的构建工具:22.0.1[echo] 解决 QtApp 的构建目标...[gettarget] 项目目标:Android 5.1.1[gettarget] API 级别:22[回声] ----------[echo] 如果需要,创建输出目录...[mkdir] 创建的目录:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin[mkdir] 创建的目录:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/res[mkdir] 创建的目录:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/rsObj[mkdir] 创建目录:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/rsLibs[mkdir] 创建目录:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/gen[mkdir] 创建目录:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/classes[mkdir] 创建目录:/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/dexedLibs[回声] ----------[echo] 解决 QtApp 的依赖...[依赖] 库依赖:[依赖] 没有库[依赖][依赖] ------------------[回声] ----------[echo] 使用调试"构建库...[subant] 没有要迭代的子构建-代码生成:[mergemanifest] 将 AndroidManifest 文件合二为一.[mergemanifest] 已禁用清单合并.仅使用项目清单.[echo] 处理 aidl 文件...[aidl] 找到 2 个 AIDL 文件.[aidl] 编译 2 个 AIDL 文件.构建失败/home/user/android-sdk-linux/tools/ant/build.xml:653: 执行此行时出现以下错误:/home/user/android-sdk-linux/tools/ant/build.xml:659:执行失败:java.io.IOException:无法运行程序/home/user/android-sdk-linux/build-tools/22.0.1/aidl": error=2, 没有那个文件或目录在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)在 java.lang.Runtime.exec(Runtime.java:617)在 org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)在 org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)在 org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442)在 org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:628)在 org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)在 org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495)在 com.android.ant.AidlExecTask$AidlProcessor.process(AidlExecTask.java:102)在 com.android.ant.MultiFilesTask.processFiles(MultiFilesTask.java:131)在 com.android.ant.AidlExecTask.execute(AidlExecTask.java:203)在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)在 sun.reflect.GeneratedMethodAccessor4.invoke(未知来源)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在 java.lang.reflect.Method.invoke(Method.java:606)在 org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)在 org.apache.tools.ant.Task.perform(Task.java:348)在 org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)在 com.android.ant.IfElseTask.execute(IfElseTask.java:120)在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)在 sun.reflect.GeneratedMethodAccessor4.invoke(未知来源)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在 java.lang.reflect.Method.invoke(Method.java:606)在 org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)在 org.apache.tools.ant.Task.perform(Task.java:348)在 org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)在 sun.reflect.GeneratedMethodAccessor4.invoke(未知来源)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在 java.lang.reflect.Method.invoke(Method.java:606)在 org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)在 org.apache.tools.ant.Task.perform(Task.java:348)在 org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396)在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)在 sun.reflect.GeneratedMethodAccessor4.invoke(未知来源)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在 java.lang.reflect.Method.invoke(Method.java:606)在 org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)在 org.apache.tools.ant.Task.perform(Task.java:348)在 org.apache.tools.ant.Target.execute(Target.java:435)在 org.apache.tools.ant.Target.performTasks(Target.java:456)在 org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)在 org.apache.tools.ant.Project.executeTarget(Project.java:1364)在 org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)在 org.apache.tools.ant.Project.executeTargets(Project.java:1248)在 org.apache.tools.ant.Main.runBuild(Main.java:851)在 org.apache.tools.ant.Main.startAnt(Main.java:235)在 org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)在 org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)引起:java.io.IOException: error=2, No such file or directory在 java.lang.UNIXProcess.forkAndExec(本机方法)在 java.lang.UNIXProcess.(UNIXProcess.java:186)在 java.lang.ProcessImpl.start(ProcessImpl.java:130)在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)... 48 更多总时间:0秒构建android包失败!-- 有关更多信息,请使用 --verbose 运行此命令.07:40:07:进程/home/user/Qt5/5.4/android_armv7/bin/androiddeployqt"退出,代码为14.构建/部署项目 android01 时出错(套件:Android for armeabi-v7a (GCC 4.9, Qt 5.4.1))执行步骤构建 Android APK"时07:40:07:经过时间:00:01.

问题出在哪里?

解决方案

sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 解决了问题.>

I'm using Qt5.4.1 on Ubuntu 14.04. I've installed Android SDK Tools 24.1.2, Android SDK Platform-tools 22, Android SDK Build-tools 22.0.1 and API22 in the Android SDK Manager.

I have installed java-7-openjdk-amd64 and added the paths to the Android SDK, Android NDK, java-7-openjdk-amd64 and apache-ant-1.9.4 in Qt Creator 3.3.1.

If I create a project an build I get this error:

07:40:06: Running steps for project android01...
07:40:06: Configuration unchanged, skipping qmake step.
07:40:06: Starting: "/usr/bin/make" 
make: Nothing to be done for `first'.
07:40:06: The process "/usr/bin/make" exited normally.
07:40:06: Removing directory /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build
07:40:06: Starting: "/usr/bin/make" INSTALL_ROOT=/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build install
install -m 755 -p "libandroid01.so" "/home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/libs/armeabi-v7a/libandroid01.so"
07:40:06: The process "/usr/bin/make" exited normally.
07:40:06: Starting: "/home/user/Qt5/5.4/android_armv7/bin/androiddeployqt" --input /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-libandroid01.so-deployment-settings.json --output /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build --deployment bundled --android-platform android-22 --jdk /usr/lib/jvm/java-7-openjdk-amd64 --ant /home/user/apache-ant-1.9.4/bin/ant
Generating Android Package
  Input file: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-libandroid01.so-deployment-settings.json
  Output directory: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/
  Application binary: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/libandroid01.so
  Android build platform: android-22
  Install to device: No
Buildfile: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/build.xml

-set-mode-check:

-set-debug-files:

-check-env:
 [checkenv] Android SDK Tools Revision 24.1.2
 [checkenv] Installed at /home/user/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 5.1.1
[gettarget] API level:        22
     [echo] ----------
     [echo] Creating output directories if needed...
    [mkdir] Created dir: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin
    [mkdir] Created dir: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/res
    [mkdir] Created dir: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/rsObj
    [mkdir] Created dir: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/rsLibs
    [mkdir] Created dir: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/gen
    [mkdir] Created dir: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug/android-build/bin/classes
    [mkdir] Created dir: /home/user/QtProjects/_test_/build-android01-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-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.

BUILD FAILED
/home/user/android-sdk-linux/tools/ant/build.xml:653: The following error occurred while executing this line:
/home/user/android-sdk-linux/tools/ant/build.xml:659: Execute failed: java.io.IOException: Cannot run program "/home/user/android-sdk-linux/build-tools/22.0.1/aidl": error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
    at java.lang.Runtime.exec(Runtime.java:617)
    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: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:606)
    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:606)
    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:606)
    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:606)
    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: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:186)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
    ... 48 more

Total time: 0 seconds
Building the android package failed!
  -- For more information, run this command with --verbose.
07:40:07: The process "/home/user/Qt5/5.4/android_armv7/bin/androiddeployqt" exited with code 14.
Error while building/deploying project android01 (kit: Android for armeabi-v7a (GCC 4.9, Qt 5.4.1))
When executing step "Build Android APK"
07:40:07: Elapsed time: 00:01.

Where is the problem?

解决方案

sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 solved the problem.

这篇关于构建 Qt Android 应用程序失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆