我正在尝试使用下面的gradle构建文件构建一个Android测试
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']
}
}
}当运行时,我得到以下错误:
错误:在APK包装过程中复制文件.存档中的路径:....gradle/caches/artifacts-24/filestore/junit/junit/4.11/jar/4e031bb61df09069aeb2bffb4019e7a5034a4ee0/junit-4.11.jar原产地1: LICENSE.txt源2:....gradle/caches/artifacts-24/filestore/org.hamcrest/hamcrest-core/1.3/jar/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar :packageTest失败 失败:生成失败,出现异常。
发布于 2013-07-30 17:37:12
Junit v4.5已经将所有必要的依赖打包到JUnit jar中。因此,不需要hamcrest.jar,也不需要产生双重LICENSE.txt文件。
只需将依赖项更改为:
instrumentTestCompile "junit:junit:4.5+“
基本问题仍然存在-- android在其构建树中不接受两个文件名相同的名称。不过,这是一个很好的解决办法。
发布于 2013-12-19 21:49:56
我注意到AOSP中的提交注释,解决方案是使用DSL排除一些文件。可能是在0.7.1发布的时候。
commit e7669b24c1f23ba457fdee614ef7161b33feee69
Author: Xavier Ducrohet <--->
Date: Thu Dec 19 10:21:04 2013 -0800
Add DSL to exclude some files from packaging.
This only applies to files coming from jar dependencies.
The DSL is:
android {
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
}https://stackoverflow.com/questions/17924608
复制相似问题