Android gradle build: duplicate files during packaging of APK LICENSE.txt

android, android-build, gradle

Solution

Junit v4.5 has packaged all necessary dependencies into the JUnit jar. Hence no need for hamcrest.jar, and no resulting double LICENSE.txt file.

just change dependencies to:

instrumentTestCompile "junit:junit:4.5+"

The basic issue still remains - android not accepting two files names the same in its build tree. This is a good workaround, though.

Problem

I am trying to build an Android test using the following gradle build file ``` buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.4.2' } apply plugin: 'android-library' repositories { mavenCentral() } dependencies { instrumentTestCompile "junit:junit:4.+" } android { compileSdkVersion 17 buildToolsVersion "17.0.0" instrumentTest.setRoot('tests') instrumentTest { java.srcDirs = ['tests/src'] res.srcDirs = ['tests/res'] assets.srcDirs = ['tests/assets'] resources.srcDirs = ['tests/src'] } } } ``` When run I get the following error: Error: duplicate files during packaging of APK ... Path in archive: LICENSE.txt Origin 1: ....gradle/caches/artifacts-24/filestore/junit/junit/4.11/jar/4e031bb61df09069aeb2bffb4019e7a5034a4ee0/junit-4.11.jar Origin 2: ....gradle/caches/artifacts-24/filestore/org.hamcrest/hamcrest-core/1.3/jar/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar :packageTest FAILED FAILURE: Build failed with an exception. - What went wrong: Execution failed for task ':packageTest'. Duplicate files at the same path inside the APK: LICENSE.txt

Original source