Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么构建失败?_Android_Qt_Qt Creator - Fatal编程技术网

Android 为什么构建失败?

Android 为什么构建失败?,android,qt,qt-creator,Android,Qt,Qt Creator,我正在尝试在android设备上运行最简单的Qt应用程序。有AVD和安卓手机。对于这两种情况,我都得到了错误: BUILD FAILED /home/user1/dev/android-sdk-linux/tools/ant/build.xml:649: The following error occurred while executing this line: /home/user1/dev/android-sdk-linux/tools/ant/build.xml:655: Execute

我正在尝试在android设备上运行最简单的Qt应用程序。有AVD和安卓手机。对于这两种情况,我都得到了错误:

BUILD FAILED
/home/user1/dev/android-sdk-linux/tools/ant/build.xml:649: The following error occurred while executing this line:
/home/user1/dev/android-sdk-linux/tools/ant/build.xml:655: Execute failed: java.io.IOException: Cannot run program "/home/user1/workspace/build-Test11123-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android-build/${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.
16:30:43: The process "/opt/Qt/5.4/android_armv7/bin/androiddeployqt" exited with code 14.
Error while building/deploying project Test11123 (kit: Android for armeabi-v7a (GCC 4.9, Qt 5.4.2))
When executing step "Build Android APK"
生成失败
/home/user1/dev/android sdk linux/tools/ant/build.xml:649:执行此行时发生以下错误:
/home/user1/dev/android sdk linux/tools/ant/build.xml:655:执行失败:java.io.IOException:无法运行程序“/home/user1/workspace/build-Test11123-android_for_armeabi_v7a_GCC_4_9_Qt_5_4_2-Debug/android build/${aidl}”:错误=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.UnknowneElement.execute(unknowneElement.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.UnknowneElement.execute(unknowneElement.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.UnknowneElement.execute(unknowneElement.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.UnknowneElement.execute(unknowneElement.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,没有这样的文件或目录
位于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运行此命令。
16:30:43:进程“/opt/Qt/5.4/android_armv7/bin/androiddeployqt”退出,代码为14。
构建/部署项目Test11123时出错(工具包:适用于armeabi-v7a的Android(GCC 4.9,Qt 5.4.2))
执行步骤“构建Android APK”时
没有帮助我

Qt 5.4.2
QtCreator 3.4.1
星系S4处于活动状态
AVD:API等级22 armeabi-v7a

我也有同样的问题。将这些行添加到build.xml文件中解决了这一问题:

<property name="aidl" location="${sdk.dir}/build-tools/22.0.1/aidl${exe}" />
<property name="aapt" location="${sdk.dir}/build-tools/22.0.1/aapt${exe}" />
<property name="dx" location="${sdk.dir}/build-tools/22.0.1/dx${exe}" />
<property name="zipalign" location="${sdk.dir}/build-tools/22.0.1/zipalign${exe}" />


似乎有些Android SDK版本(例如22)在ant build.xml中缺少几个工具。因此,mastertoster的回答中所述的行应该添加到
/tools/ant/build.xml
文件中。

+1这对我很有效。我必须在“exe”定义之后添加它,即接近“adb”和“lint”定义。