2012-03-27 32 views
6

我有一個在Eclipse中構建的項目,但在執行「ant debug」時拋出ZipException。輸出如下(路徑和項目名稱除外)在使用Ant轉換爲dex時出現ZipException,在eclipse中它工作正常

-dex: 
     [dex] Converting compiled files and external libraries into /home/.../Android/[folder]/bin/classes.dex... 
     [dx] 
     [dx] UNEXPECTED TOP-LEVEL EXCEPTION: 
     [dx] java.util.zip.ZipException: error in opening zip file 
     [dx]  at java.util.zip.ZipFile.open(Native Method) 
     [dx]  at java.util.zip.ZipFile.<init>(ZipFile.java:131) 
     [dx]  at java.util.zip.ZipFile.<init>(ZipFile.java:148) 
     [dx]  at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:206) 
     [dx]  at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131) 
     [dx]  at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109) 
     [dx]  at com.android.dx.command.dexer.Main.processOne(Main.java:418) 
     [dx]  at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329) 
     [dx]  at com.android.dx.command.dexer.Main.run(Main.java:206) 
     [dx]  at com.android.dx.command.dexer.Main.main(Main.java:174) 
     [dx]  at com.android.dx.command.Main.main(Main.java:95) 
     [dx] 1 error; aborting 

BUILD FAILED 
/home/.../android-sdk-linux_x86/tools/ant/build.xml:818: The following error occurred while executing this line: 
/home/.../android-sdk-linux_x86/tools/ant/build.xml:820: The following error occurred while executing this line: 
/home/.../android-sdk-linux_x86/tools/ant/build.xml:832: The following error occurred while executing this line: 
/home/.../android-sdk-linux_x86/tools/ant/build.xml:278: null returned: 1 

此項目引用了一個引用另一個庫項目的庫項目。所以

A計劃 - >項目B - >項目C

對我來說,奇怪的是,從Eclipse中安裝的一切完美的作品,但我需要能夠建立從Ant的項目。

我用Google搜索了沒有成功的答案。在如此相似的問題沒有幫助

How do I fix this ZipException while compiling an Android project on Jenkins?

Configuring ant to run unit tests. Where should libraries be? How should classpath be configured? avoiding ZipException

+0

你有沒有解決這個問題?在將SDK工具從16個升級到19個後,我遇到了同樣的問題。 – fejd 2012-05-25 07:10:48

+0

我放棄了使用Android的Ant並創建了自己的,功能不那麼強大,但它做了我想要的。另外,如果我還記得,我已經消除了項目B和項目C之間的依賴關係,並在項目A中放置了一個「項目C.jar」。哇,多麼糟糕的評論,對不起,我幫不了什麼 – Maragues 2012-05-25 07:25:49

回答

1

而德興我得到同樣的錯誤。我發現在一個包含的android庫項目中損壞的.jar文件導致了這個問題。

修復包含的android庫項目中損壞的.jar文件修復了問題。

希望這可以幫助別人! = D

+0

感謝分享!我不再在這個項目上工作,但如果有人投票贊成,我會把它作爲接受的答案打勾,即使我不認爲這是我的問題。 – Maragues 2012-10-17 07:26:18

1

我的項目中有同樣的問題。我發現用調試標誌'-d'運行ant會轉儲診斷問題所需的信息。螞蟻將轉儲確切DX命令控制檯,它看起來是這樣的:

Execute:Java13CommandLauncher: Executing '/Users/cliff/android-sdk-macosx/platform-tools/dx' with arguments: 
'--dex' 
'--output' 
'/Users/cliff/Src/myproject/myproject-app/bin/classes.dex' 
'/Users/cliff/Src/myproject/myproject-app/bin/classes' 
'/Users/cliff/Src/myproject/myproject-config/bin/classes.jar' 

在我的情況下,相關的項目(myproject的-配置)的一個尚未建立這樣的myproject-配置/斌/班.jar失蹤。我走進myproject-config /文件夾,運行「ant調試」,然後回去,並能夠成功地建立我的項目

相關問題