Ответ 1
Попробуйте наоборот. Не используйте эспрессо-сердцевину, а просто эспрессо-паутину. Пример:
Я использую Android Espresso. Мне нужна эспрессо-сеть для работы с веб-просмотрами. Я установил свой эспрессо в соответствии с сайтом google.
https://google.github.io/android-testing-support-library/downloads/index.html
Мои зависимости выглядят так:
dependencies {
androidTestCompile 'junit:junit:4.12'
androidTestCompile 'com.squareup.spoon:spoon-client:1.1.10'
androidTestCompile 'com.jraska:falcon-spoon-compat:0.3.1'
androidTestCompile 'com.android.support:support-annotations:23.1.1'
androidTestCompile 'com.android.support.test:runner:0.4.1'
androidTestCompile 'com.android.support.test:rules:0.4.1'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.1'
androidTestCompile "org.mockito:mockito-core:1.10.19"
androidTestCompile "com.google.dexmaker:dexmaker:1.2"
androidTestCompile "com.google.dexmaker:dexmaker-mockito:1.2"
}
Когда я комментирую espresso-web import/methods и исключаю этот lib, тогда тесты запускаются. Но с этим я получаю:
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebugAndroidTest'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/com.google.guava/guava/pom.properties
File1: /Users/F1sherKK/Dev/MyProject/app/build/intermediates/exploded-aar/com.android.support.test.espresso/espresso-web/2.2.1/jars/classes.jar
File2: /Users/F1sherKK/Dev/MyProject/app/build/intermediates/exploded-aar/com.android.support.test.espresso/espresso-core/2.2.1/jars/classes.jar
Кажется, проблема с guava. Espress-web lib создает обе папки: espresso-web, espresso-core. Espresso-core lib также генерирует эспрессо-ядро, и похоже, что они перекрываются - но то, как установка говорит, должно быть. Исключение Espresso-core lib там не помогает. Любая идея, как это исправить?
Edit:
Обходной путь сейчас в упаковкеОпции:
exclude 'META-INF/maven/com.google.guava/guava/pom.properties'
exclude 'META-INF/maven/com.google.guava/guava/pom.xml'
Попробуйте наоборот. Не используйте эспрессо-сердцевину, а просто эспрессо-паутину. Пример:
Добавление
packagingOptions {
exclude 'META-INF/maven/com.google.guava/guava/pom.properties'
exclude 'META-INF/maven/com.google.guava/guava/pom.xml'
}
чтобы файл build.gradle работал у меня.