2013-05-12 230 views
3

我試圖通過命令行生成使用Apache Ant的一個Android項目,但它給我構建失敗,出現以下錯誤語句:
產生java.io.IOException:不能運行程序。 「.. \ android_sdk \ platform-tools \ aapt.exe」Ant構建失敗

D:\ MediaSync \ build.xml:429:執行失敗:java.io.IOException:無法運行程序「.. \ android_sdk \ platform- tools \ aapt.exe「

我是新來的這個東西,所以我沒有得到任何想法如何克服這個錯誤。搜索了很多關於它,但仍然抓我的頭..
任何人有任何想法,然後請告訴我。

編輯:這裏是我的Buil.xml的部分文件

<!-- General SDK location --> 
<property name="sdk-folder" value="D:/sdk" /> 

<!-- Preset tools location --> 
<property name="android-platform-tools" value="${sdk-folder}/platform-tools"/> 

<!-- Tools --> 
<condition property="aapt" value="${android-platform-tools}/aapt.exe" else="${android-platform-tools}/aapt" > 
    <os family="windows"/> 
</condition> 


<!-- Generate the R.java file for this project's resources. --> 
<target name="resource-src" depends="init, localization, replace-template-values"> 
    <echo>Generating R.java/Manifest.java from the resources...</echo> 
    <exec executable="${aapt}" failonerror="true"> 
     <arg value="package" /> 
     <arg value="-m" /> 
     <arg value="-J" /> 
     <arg value="${outdir-r}" /> 
     <arg value="-M" /> 
     <arg value="${outdir.manifest}/AndroidManifest.xml" /> 
     <arg value="-S" /> 
     <arg value="${resource-dir}" /> 
     <arg value="-I" /> 
     <arg value="${android-jar}" /> 
    </exec> 

</target> 
+0

你有沒有找到解決你的問題..? – 2015-06-19 13:16:26

+0

@AmritpalSingh ..我其實不記得當時我做了什麼。你可以嘗試下面的答案。 – Noman 2015-06-22 04:43:33

回答

3

確保aapt.exe安裝相對於build.xml文件正確的路徑在(../android_sdk/platform-工具)。該路徑可能與您的項目相關,但不是build.xml。

+0

appt.exe正確地位於platform-tools文件夾中。我的Android SDK放在C盤中。所以aapt.exe的完整路徑如下: C:\ android-sdk-windows \ sdk \ platform-tools \ aapt.exe \。 ! bt仍然沒有構建項目 – Noman 2013-05-12 12:46:04

+0

爲了避免混淆,你也可以使用絕對路徑。 – javadeveloper 2013-05-12 12:46:12

+0

@javadeveloper ..我怎麼用它? 你能告訴我示例 – Noman 2013-05-12 12:49:47

1

你的錯誤消息指出:

d:\ MediaSync \的build.xml:429:執行失敗:產生java.io.IOException:不能運行程序」 .. \ android_sdk \平臺工具\ AAPT。 EXE」

,而你的aapt.exe位於:

C:\ Android的SDK-WINDOWS \ SDK \平臺工具\ aapt.exe \

很顯然,build.xml試圖搜索D:\android_sdk\platform-tools\aapt.exe,這是錯誤的路徑。

應該有一個屬性供您指定aapt.exe的路徑,或者它從系統的PATH變量中讀取。

要獲得解決方案,請在build.xml中的第429行周圍放置行。在第429行中,應該有一個<exec>任務,請確保包含該任務的全部內容(從<exec ...>複製到</exec>)。

+0

@coolcfan ..我已經在系統變量中爲「Platform-tools」文件夾和「Tools」設置了正確的路徑,並在SDK的Build.properties中提到了正確的路徑... 並且if我在Build.xml文件中設置android SDK的絕對路徑,然後再次生成失敗.. – Noman 2013-05-13 07:20:00

+0

發佈您的build.xml的部分... – coolcfan 2013-05-13 07:41:35

+0

@coolcfan ...請現在看看。 – Noman 2013-05-13 07:51:52

3

我遇到了一個64位的Fedora平臺同樣的問題,終於摸索出來以下這一點:http://blog.mx17.net/2012/10/25/android-on-ubuntu-ioexception-on-aapt/

它曾因爲試圖運行上的64位架構的32位程序失敗。 也許這會有所幫助。

+0

@yangxu ...感謝您的回覆......我編譯了代碼..我的問題是項目安裝指南並不是最新的。 – Noman 2013-05-20 07:22:01

1

intellij android studio中存在一個bug,也許其他IDE指向平臺工具,用於某些可執行文件/庫,它們現在生活在build-toos中。目前的解決方法是製作必要文件的模擬鏈接。所以,在Linux/MAC

platform-tools$ ln -s ../build-tools/android-version-blah/bin/appt appt 

platform-tools$ ln -s ../build-tools/android-version-blah/lib lib 

適用於Windows,安裝LinkExtensions與mklink取代LN和讀取與無參數輸入mklink幫助。在Windows中,該文件將是appt.exe

0

您可以做的快速修復是將aapt.exe和lib文件夾從構建工具複製到platform-tools文件夾。