我正在尝试在现有项目中设置androidTests。
根据Google的官方指南,我添加了以下依赖项:
androidTestCompile 'junit:junit:4.12'
androidTestCompile 'org.robolectric:robolectric:3.1.2'
androidTestCompile 'org.assertj:assertj-core:3.5.2'
androidTestCompile 'com.android.support:support-annotations:25.3.1'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
第一个问题是,APK中有多个confilicting文件(重复):
packagingOptions {
pickFirst '.readme'
pickFirst 'META-INF/LICENSE.txt'
pickFirst 'META-INF/plexus/components.xml'
pickFirst 'META-INF/NOTICE.txt'
pickFirst 'META-INF/MANIFEST.MF'
pickFirst 'licenses/thoughtworks.TXT'
pickFirst 'licenses/javolution.license.TXT'
pickFirst 'licenses/extreme.indiana.edu.license.TXT'
pickFirst 'org/apache/maven/project/pom-4.0.0.xml'
pickFirst 'org/codehaus/plexus/plexus-bootstrap.xml'
pickFirst 'org/cyberneko/html/res/HTMLlat1.properties'
pickFirst 'org/cyberneko/html/res/HTMLsymbol.properties'
pickFirst 'org/cyberneko/html/res/XMLbuiltin.properties'
pickFirst 'org/cyberneko/html/res/HTMLspecial.properties'
pickFirst 'org/cyberneko/html/res/ErrorMessages_ja.properties'
pickFirst 'org/cyberneko/html/res/ErrorMessages.properties'
pickFirst 'org/cyberneko/html/res/ErrorMessages_ja.txt'
pickFirst 'org/cyberneko/html/res/ErrorMessages.txt'
pickFirst 'META-INF/LICENSE'
pickFirst 'META-INF/DEPENDENCIES'
}
排除重复项后,我最终得到了大约1700个关于类,超类和接口的警告,以及错误:
Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForMediadeDebugAndroidTest'.
> Job failed, see logs for details
我真的不知道在哪些部分需要进一步研究,以便进行测试。
编辑:以下是Gradle Logs
答案 0 :(得分:1)
运行测试时无需运行ProGuard,因此您可以删除proguardFiles
行并将minifyEnabled
更改为 false 。
修改强>
要摆脱重复的依赖关系,您需要检查Gradle控制台日志以查找有关java.util.zip.ZipException: duplicate entry
的行以查找多次添加的类。
一旦您知道哪些类是重复的,您可以按照此处的说明进行修复:Fixing ZipException: duplicate entry