6

Eclipse で問題なくビルドできるプロジェクトがありますが、「ant デバッグ」を実行すると ZipException がスローされます。出力は次のとおりです (パスとプロジェクト名は除外されます)。

    -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 からプロジェクトをビルドできるようにする必要があります。

私は成功せずに答えを探しました。役に立たなかったSOの同様の質問

Jenkins で Android プロジェクトをコンパイルしているときに、この ZipException を修正するにはどうすればよいですか?

単体テストを実行するための ant の構成。ライブラリはどこにあるべきですか?クラスパスはどのように構成する必要がありますか? ZipException の回避

4

2 に答える 2

1

dexing中に同じエラーが発生しました。含まれている Android ライブラリ プロジェクト内の破損した.jarファイルがこの問題の原因であることがわかりました。

.jar含まれている Android ライブラリ プロジェクトの破損したファイルを修正すると、問題が修正されました。

これが誰かを助けることを願っています! =D

于 2012-10-16T21:51:25.740 に答える
1

私は自分のプロジェクトでこれとまったく同じ問題を抱えていました。デバッグ フラグ '-d' を指定して ant を実行すると、問題の診断に必要な情報がダンプされることがわかりました。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'

私の場合、依存プロジェクトの 1 つ (myproject-config) がビルドされていなかったため、myproject-config/bin/classes.jar がありませんでした。myproject-config/ フォルダーに移動し、「ant debug」を実行してから戻って、プロジェクトを正常にビルドできました

于 2012-11-29T20:44:59.433 に答える