2014-12-31 73 views
1

大約一個月前更新我的Android SDK後,我遇到了無數問題,使我無法使用非功能性開發環境。執行aapt時出錯:返回代碼132個問題

最初問題出在v7-appcompat支持庫上,這個庫引發了大約100個與各種資源有關的錯誤。很明顯,他們是與Android v5相關的資源,並且快速搜索堆棧溢出意味着我意識到v7-appcompat庫的目標是API 19.將相關設置更改爲目標API 21修復了資源錯誤。

然而,從那以後我有問題是任何試圖快速構建庫項目完成與...

錯誤執行AAPT:返回碼132

...並且庫項目構建不正確。

我原來的設置是使用Eclipse Kepler,但後來我嘗試了Android Studio v1.0.1(相同的aapt錯誤代碼),今天我將Eclipse Luna安裝到Kepler的單獨目錄中,並安裝了ADT和SDK。 Eclipse的每個版本也都有自己的工作空間。所以基本上我有兩個版本的Eclipse(每個版本都有自己的ADT/SDK設置和工作區)和Android Studio以及它們自己的目錄結構,並且所有三個版本都有相同的問題。

問題是,我該如何去診斷這個問題?共同點顯然是一個適應問題,但我不知道如何解決它。

我在Debian Wheezy(32位)設置上運行,並且正確安裝了Java 1.7(按照建議)。

回答

2

在一些32位系統上似乎存在aapt問題。它會在app:processDebugResources上拋出一個錯誤132,這是當aapt正在「碾壓」png文件準備好包含在apk包中時。您可以在https://code.google.com/p/android/issues/detail?id=75110

上看到更多詳細信息有些人已經報告說,修復有問題的png文件(例如,通過在GIMP中打開並保存)會對問題進行排序。當它們被「內置」到appcompat中時,它當然要難得多。

在詳細介紹之前,你可以說你是否真的在32位處理器上運行,如果是的話,哪一個呢?使用lscpu來查明。

好的,如果任何人有興趣,這裏有一個解決辦法,所以你可以使用你的舊筆記本電腦來構建與Android Studio的應用程序。基本上你會去掉appcompat-v7庫中的所有png文件,然後使用兩個版本的aapt進行構建。育。

  1. 找到appcompat-v7。AAR這將是類似的地方~/Android/Sdk/extras/android/m2repository/com/android/support/appcompat-v7/22.0.0

  2. 提取它(這是一個zip文件真的)到一個臨時目錄

  3. 地帶所有的PNG文件:find . -name "*.png" -exec mogrify -strip {} \;

  4. 包中的文件再次起來:pushd appcompat-v7-22.0.0; zip -r ../appcompat-v7-22.0.0.aar; popd
  5. 移動新的aar文件來取代原來的(這可能足以獲得一個良好的構建,但它不適合我)
  6. 現在找到舊版本的aapt(我去https://dl-ssl.google.com/android/repository/build-tools_r17-linux.zip
  7. 複製從zip AAPT的版本,你剛剛撈起放入了Android/SDK /編譯工具目錄AAPT-17或任何
  8. 重命名原始AAPT到AAPT-0
  9. 交替之間兩種版本的aapt(例如ln -sf aapt-17 aapt),你會發現你可以得到一個良好的構建。一個版本會在一個地方失敗,另一個在另一個地方失敗,讓你經歷所有的顛簸。
  10. 我知道它很臭,但我絕望!
+0

謝謝。直到週末我都沒有時間檢查這件事,但如果它適合我​​,我會告訴你。事實上,我已經通過Git存儲庫將我的主要項目移回到了我的Win XP中,並且能夠再次進行編碼。儘管如此,讓Linux機器正常工作會很好。 – Squonk

0

這就是我所做的,這足以獲得成功的構建。受到peterthevicar的回答啓發。

  • 降級SDK到19.1.0,你可以從工作室安裝它,然後修改buildToolsVersion中的build.gradle
  • 命名AAPT到aapt.bin,並把它的位置shell腳本攔截只是PNG緊縮(args:s -i infile -o outfile),而不是簡單的cp。會粘貼在這裏,但SO的語法突出顯示