Execute failed: java. io. IOException: Cannot run program "sdk-linux/build-tools/22.0.0/aapt": error = 2, cannotrunprogram
When using ant to compile and package apk in Linux, the following error occurs and its solution:
1、/usr/local/android-sdk-linux/tools/ant/build.xml:698: Execute failed: java.io.IOException: Cannot run program "/usr/local/android-sdk-linux/build-tools/22.0.0/aapt": error=2, No such file or directory
BUILD FAILED/svcroot/workspace/build/MobileAppAndorid/build.xml:94: The following error occurred while executing this line:/usr/local/android-sdk-linux/tools/ant/build.xml:653: The following error occurred while executing this line:/usr/local/android-sdk-linux/tools/ant/build.xml:698: Execute failed: java.io.IOException: Cannot run program "/usr/local/android-sdk-linux/build-tools/22.0.0/aapt": error=2, No such file or directoryat java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)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.AaptExecTask.execute(AaptExecTask.java:699)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.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)at org.apache.tools.ant.Project.executeTargets(Project.java:1248)at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441)at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)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 directoryat java.lang.UNIXProcess.forkAndExec(Native Method)at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)at java.lang.ProcessImpl.start(ProcessImpl.java:130)at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)... 59 more
Cause: the C ++ language library for x86 is missing when packaging APK in 64-bit Linux.
Solution:
# Yum install-y compat-libstdc ++-296. i686
# Yum install-y compat-libstdc ++-33. i686
2、/usr/local/android-sdk-linux/build-tools/20.0.0/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
-code-gen:[mergemanifest] Found modified input file[mergemanifest] Merging AndroidManifest files into one.[mergemanifest] Manifest merger disabled. Using project manifest only. [echo] Handling aidl files... [aidl] No AIDL files to compile. [echo] ---------- [echo] Handling RenderScript files... [echo] ---------- [echo] Handling Resources... [aapt] Generating resource IDs... [aapt] /usr/local/android-sdk-linux/build-tools/20.0.0/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directoryBUILD FAILED/svcroot/workspace/build-app/MobileAppAndorid/build.xml:94: The following error occurred while executing this line:/usr/local/android-sdk-linux/tools/ant/build.xml:653: The following error occurred while executing this line:/usr/local/android-sdk-linux/tools/ant/build.xml:698: null returned: 127
Solution:
# Yum install-y zlib
(Yum configuration can refer to post http://blog.csdn.net/catoop/article/details/41345471 I'm using RHEL 6.5 Linux)
3、[aapt] /android/sdk/build-tools/android-4.4/aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
-code-gen: [mergemanifest] Merging AndroidManifest files into one. [mergemanifest] Manifest merger disabled. Using project manifest only. [echo] Handling aidl files... [aidl] No AIDL files to compile. [echo] ---------- [echo] Handling RenderScript files... [echo] ---------- [echo] Handling Resources... [aapt] Generating resource IDs... [aapt] /android/sdk/build-tools/android-4.4/aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Cause: the C ++ language library for x86 is missing when packaging APK in 64-bit Linux.
Solution:
# Yum install-y libstdc ++. so.6
If the problem 2 and 3 has not been resolved, try the following command:
# yum install glibc*.i686# yum install zlib*.i686# yum install libstdc++.so.6
---------------
(End)
Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.