5

powermock-mockito と mockito を Android テスト プロジェクトに追加しようとしています。android コマンドライン ツールを使用して android テスト プロジェクトを作成し、build.xml とプロジェクト構造を作成しました。libs/ ディレクトリに次の jar があります。

  • dexmaker-1.0.jar
  • dexmaker-mockito-1.0.jar
  • mockito-all-1.9.5.jar
  • powermock-mockito-1.5-full.jar

Ant デバッグでプロジェクトをビルドしようとすると、次のエラーが発生します。

[apkbuilder] Creating ProjectTests-debug-unaligned.apk and signing it with a debug key...
[apkbuilder] Found duplicate file for APK: mockito-extensions/org.mockito.plugins.MockMaker
[apkbuilder] Origin 1: /home/cmiller/Projects/android-project/ProjectTests/libs/powermock-mockito-1.5-full.jar
[apkbuilder] Origin 2: /home/cmiller/Projects/android-project/ProjectTests/libs/powermock-mockito-1.5-full.jar

BUILD FAILED
/home/cmiller/Applications/adt-bundle-linux/sdk/tools/ant/build.xml:951: The following error occurred while executing this line:
/home/cmiller/Applications/adt-bundle-linux/sdk/tools/ant/build.xml:962: The following error occurred while executing this line:
/home/cmiller/Applications/adt-bundle-linux/sdk/tools/ant/build.xml:319: com.android.sdklib.build.DuplicateFileException: Duplicate files at the same path inside the APK

単一のjarファイルで重複ファイルを見つける方法がわかりません。build.xml ファイルはまったく変更されておらず、custom_rules.xml も作成していません。どんな助けでも大歓迎です。

4

2 に答える 2

3

org.mockito.plugins.MockMakerjar の 1 つから重複したクラスを削除するだけです。私は次のようにしてこれを解決しました:

  1. のバックアップ コピーを作成するpowermock-mockito-1.5-full.jar
  2. powermock-mockito-1.5-full.jarに名前を変更powermock-mockito-1.5-full.zip
  3. 解凍するpowermock-mockito-1.5-full.zip
  4. rm -rf mockito-extensions
  5. jar cf powermock-mockito-1.5-full.jar META-INF/ org/
  6. 更新された jar を libs フォルダーに配置します。
于 2013-08-29T18:49:01.787 に答える
2

ファイルが本当にjarファイルに複製されているかどうかを確認しましたか? Afaik 1 つの zip ファイルに同じファイルが 2 回含まれている可能性があります。そのファイルでは、それをjarから削除すると役立つ場合があります。しかし、それがどのようにそこに到達するかはわかりません。

于 2013-04-21T05:55:06.837 に答える