2011-02-03 21 views
12

大家好 當enabing proguard的Android遊戲,同時建立簽名的JAR我得到以下轉儲:的Android Proguard的產生java.io.IOException:無法讀取[proguard.ClassPathEntry

[2011-02-03 11:28:27 - VideoCreator] Proguard returned with error code 1. See console 
[2011-02-03 11:28:27 - VideoCreator] java.io.IOException: Can't read [[email protected]] (No such file or directory) 
[2011-02-03 11:28:27 - VideoCreator] at proguard.InputReader.readInput(InputReader.java:230) 
[2011-02-03 11:28:27 - VideoCreator] at proguard.InputReader.readInput(InputReader.java:200) 
[2011-02-03 11:28:27 - VideoCreator] at proguard.InputReader.readInput(InputReader.java:178) 
[2011-02-03 11:28:27 - VideoCreator] at proguard.InputReader.execute(InputReader.java:100) 
[2011-02-03 11:28:27 - VideoCreator] at proguard.ProGuard.readInput(ProGuard.java:195) 
[2011-02-03 11:28:27 - VideoCreator] at proguard.ProGuard.execute(ProGuard.java:78) 
[2011-02-03 11:28:27 - VideoCreator] at proguard.ProGuard.main(ProGuard.java:499) 

找不到任何東西在網上相關。有任何想法嗎?

回答

7

ProGuard無法找到(或讀取)其中一個輸入罐。如果您安裝了ProGuard 4.5.1而不是4.4,它將打印出正確的文件名,以便您找出缺失的原因。

+0

4.7似乎好工作太 – scottyab 2012-02-14 11:29:47

+3

@Eric:你能否提供關於如何處理以下錯誤提示:java.io.IOException異常:無法讀取[C:\用戶\ MYNAME \應用程序數據\ Local \ Temp \'E:\ Program Files \ android-sdks \ platforms \ android-15 \ android.jar'](沒有這樣的文件或目錄)?我想知道爲什麼使用C:\ Users \ myname \ AppData \ Local \ Temp \。 – Hong 2012-03-12 04:20:34

5

下載最新的ProGuard,並用您下載的新文件夾替換您的基礎sdk工具文件夾(如c:/ android-sdk/tools/proguard)中現有的lib文件夾。

像Eric說的那樣,它會告訴你什麼是缺失的。在-libraryjars命令中很可能你使用了錯誤的路徑。嘗試刪除

2

檢查是否在.jar的路徑名中包含空格。我剛剛遇到了同樣的問題,升級到ProGuard 4.6並在錯誤消息中獲得了更多信息,但問題仍然存在。然後我想,也許這是因爲我的路徑名稱中有空格,我將路徑名中的所有空格字符替換爲「 - 」,ProGuard再次像魅力一樣工作:)

3

更新ProGuard的確有助於找出問題。在我的情況下,這是與我的Mac上的JDK配置有關,而rt.jar和jsse.jar文件不在通常位置。

我找到了解決方案here

cd $JAVA_HOME/lib 
sudo ln -s ../../Classes/classes.jar rt.jar 
sudo ln -s ../../Classes/jsse.jar . 
相關問題