2011-07-07 54 views
11

我剛剛更新到Android SDK工具修訂版12,立即我的應用程序無法使用先前的Proguard設置導出。我收到「轉換爲Dalvik格式失敗,出現錯誤1」,我使用的唯一庫是「jcifs」。我嘗試過清潔和重建,創建一個新項目,並重新組裝,我相信我已經完成了幾乎所有可以在互聯網上閱讀的內容。 這是來自這個新SDK的新bug嗎?如果您的項目使用Proguard,我建議暫時不要更新。Android SDK工具修訂版12有問題Proguard =>錯誤轉換爲Dalvik格式失敗,出現錯誤1

UPDATE 1: 我也嘗試導出一個簡單的Hello應用程序與proguard集,仍然是相同的消息。它看起來像這個版本的SDK工具破壞了一些東西。

更新2: 我必須刪除SDK目錄中的整個工具文件夾,並將SDK工具修訂版11的備份複製到其中。至少我可以回去工作,再次用proguard工作出口。我希望這些信息可以幫助處於相同情況的人。儘管如此,我仍然不知道發生了什麼,希望有人能夠闡明這個令人討厭的問題。

更新3: 我報道這個問題,因爲這裏的錯誤: http://code.google.com/p/android/issues/detail?id=18359 希望有人需要在這個問題很好看,到那時,你將被告知留出的這個版本,如果您在使用ProGuard您發展。

回答

26

該問題是由文件[Android SDK安裝目錄] \ tools \ proguard \ bin \ proguard.bat中R12中的ProGuard命令行引起的。只需編輯以下行將解決問題。

變化

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %* 

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 
+0

我可以確認此更改確實解決了問題。 – Yongki

+0

如果不起作用,請在「高級系統設置」中爲您的計算機/用戶手動設置環境變量(PROGUARD_HOME)。就我而言,我的路徑有一個空間,但它在R11中工作。 –

+0

謝謝!我有這個問題了一會兒...... – pqn

0

我剛剛通過從http://dl.google.com/android/installer_r11-windows.exe下載R11安裝程序並將\ tools目錄替換爲此目錄來解決此問題:
運行下載的安裝程序。
指定與常規安裝不同的目標文件夾,然後單擊「安裝」。
然後,您可以取消選中「開始SDK管理器...」,然後單擊[完成]。
安裝程序將在該不同的文件夾中創建一個\ tools目錄。
重命名您的常規「\ android-sdk-windows \ tools」目錄,並將該\ tools目錄複製到常規的「\ android-sdk-windows \」目錄中。
該項目現在應該生成沒有「錯誤1」。
我還沒有看到2個目錄中的不同之處。

+0

我有同樣的問題,我可以證實,我沒有通過與R11一個替代R12 Proguard的文件夾得到錯誤。 – BrainCrash

+0

簡單地覆蓋proguard文件夾解決了這個問題,但它以某種方式導致模擬器崩潰的消息:「PANIC:缺少拱特定模擬器程序:C:\ Android_Devs \ android-sdk-windows-1.5_r3 \ tools/emulator-arm.exe 「 – Yongki

0

更改proguard.bat的建議在我的情況沒有幫助。升級到proguard 4.6也沒有幫助。對我有什麼幫助的是,我必須降級到Android SDK工具,以修訂版11。 注意:在運行SDK Manager和安裝軟件包時,我沒有安裝軟件包「Android SDK Tools,revision 12」。

UPDATE:

我已經試過了Android SDK版本15,但問題仍然存在。現在,降級到修訂版11的此變通辦法不再適用,因爲SDK管理器用於下載軟件包的URL不再有效。

後嘗試不同的解決方案2天后,升級到ProGuard的4.6確實幫助。

3

我下載Proguard的4.6和複製/ lib和/ bin中的內容複製到/工具/ proguard的/它解決了這一問題。

+0

這是解決這個問題的正確方法。CLeaning,恢復到早期的sdk等都是不正確的一些在某些情況下,但解決這個問題的正確方法是按照Michiel所述下載Proguard 4.6) – Lysogen

2

我發現這個問題的唯一解決辦法是改變,在proguard.cfg

-optimizationpasses 5

-optimizationpasses 2

+1

它也解決了我的問題,但是-optimizationpasses 2似乎更弱保護:( – VOX

2

我遇到了同樣的問題與Android SDK工具啓16試圖從 赫利俄斯的Eclipse 3.6在Mac OS X導出簽名的應用程序包在三星GALAXY Nexus 4.0.2構建ICL53執行10.7.2 ˚F

問題:

[2012-01-11 03:15:46 - Chapter 8 Where Am I] Proguard returned with error code 1. See console 
[2012-01-11 03:15:46 - Chapter 8 Where Am I] proguard.ParseException: Unknown option '8' in argument number 9 
[2012-01-11 03:15:46 - Chapter 8 Where Am I] at proguard.ConfigurationParser.parse(ConfigurationParser.java:170) 
[2012-01-11 03:15:46 - Chapter 8 Where Am I] at proguard.ProGuard.main(ProGuard.java:491) 

解決方案:

cd /Applications/android-sdk-mac_x86/tools/proguard/bin 

然後修改文件proguard.sh如下:

# java -jar "$PROGUARD_HOME"/lib/proguard.jar "[email protected]" 
java -jar "$PROGUARD_HOME"/lib/proguard.jar "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" 
0

Android SDK工具啓16艘與ProGuard 4.4它有這個問題。我通過替換android-sdk \ tools \ proguard文件夾中的文件升級到了4.7,併爲我解決了這個問題。

感謝

0

它爲我工作。正如Michiel所建議的,我用proguard 4.6替換了proguard.bat,現在我能夠導出已簽名的應用程序而不出錯。謝了哥們。

相關問題