I'm attempting to add powermock-mockito and mockito into an Android Test project. I created the android test project using the android command-line tool to create the build.xml and project structure. I have the following jars in my libs/ directory:
- dexmaker-1.0.jar
- dexmaker-mockito-1.0.jar
- mockito-all-1.9.5.jar
- powermock-mockito-1.5-full.jar
When I attempt to build the project with ant debug, I get the following error:
[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
I'm not sure how it's finding a duplicate file in a single jar. The build.xml file hasn't been modified at all and I haven't created a custom_rules.xml. Any help would be greatly appreciated.
Just remove the duplicate class org.mockito.plugins.MockMaker
from one of the jars. I solved this by doing the following:
- Make backup copy of
powermock-mockito-1.5-full.jar
- Rename
powermock-mockito-1.5-full.jar
topowermock-mockito-1.5-full.zip
- Unzip
powermock-mockito-1.5-full.zip
rm -rf mockito-extensions
jar cf powermock-mockito-1.5-full.jar META-INF/ org/
- Put the updated jar in the libs folder.
Have you checked if the file really is duplicated in the jar file? Afaik it is possible to have the same file twice in a zip file. In that file removing that from the jar could help. No idea how it would get there though.
来源:https://stackoverflow.com/questions/15796858/apkbuilder-finds-duplicate-file-when-adding-powermock-to-an-android-test-project