本文介绍了在jetified-hamcrest-core-1.3.jar模块中找到重复的类org.hamcrest.BaseDescription的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Android Studio 3.6
Android studio 3.6
app/build.gradle:
app/build.gradle:
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'com.azimolabs.conditionwatcher:conditionwatcher:0.2'
// Espresso framework
androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
androidTestImplementation "androidx.test.espresso:espresso-intents:$espresso_version"
androidTestImplementation "androidx.test.espresso:espresso-contrib:$espresso_version"
androidTestImplementation 'org.hamcrest:hamcrest-junit:2.0.0.0'
// UI Automator framework
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.8.0'
// for test fragments
debugImplementation 'androidx.fragment:fragment-testing:1.2.0-rc02'
testImplementation 'junit:junit:4.12'
testImplementation 'com.nhaarman:mockito-kotlin-kt1.1:1.5.0'
在gradle.properties中:
in gradle.properties:
android.useAndroidX=true
android.enableJetifier=true
这是我的意式咖啡机测试:
Here my Espresso instrumentation test:
import okhttp3.mockwebserver.MockWebServer
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.hamcrest.text.MatchesPattern
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class FeedbackActivityTransportTest {
@Test
fun buttonSend_click_checkRequest() {
val request = mockServer.takeRequest();
assertEquals("POST", request.method)
assertThat(
request.body.toString(),
MatchesPattern.matchesPattern("(\"feedback.*\\\"type\\\":2\"))")
)
}
但是我得到了错误:
Duplicate class org.hamcrest.BaseDescription found in modules jetified-hamcrest-core-1.3.jar (org.hamcrest:hamcrest-core:1.3) and jetified-java-hamcrest-2.0.0.0.jar (org.hamcrest:java-hamcrest:2.0.0.0)
Duplicate class org.hamcrest.BaseMatcher found in modules jetified-hamcrest-core-1.3.jar (org.hamcrest:hamcrest-core:1.3) and jetified-java-hamcrest-2.0.0.0.jar (org.hamcrest:java-hamcrest:2.0.0.0)
Duplicate class org.hamcrest.Condition found in modules jetified-hamcrest-core-1.3.jar (org.hamcrest:hamcrest-core:1.3) and jetified-java-hamcrest-2.0.0.0.jar (org.hamcrest:java-hamcrest:2.0.0.0)
Duplicate class org.hamcrest.Condition$1 found in modules jetified-hamcrest-core-1.3.jar (org.hamcrest:hamcrest-core:1.3) and jetified-java-hamcrest-2.0.0.0.jar (org.hamcrest:java-hamcrest:2.0.0.0)
推荐答案
如果您像下面这样在 app Gradle 中强制您的 Hamcrest 依赖关系,可能会解决您的问题:
If you force your Hamcrest dependency in app Gradle like below might solve your problem:
configurations.all {
resolutionStrategy {
force 'org.hamcrest:hamcrest-junit:2.0.0.0'
}
}
在应用后,如果遇到相同的错误,请尝试排除,如下所示:
After apply if you get the same error try to exclude like this:
configurations { compile.exclude group: "junit", module: "junit" }
这篇关于在jetified-hamcrest-core-1.3.jar模块中找到重复的类org.hamcrest.BaseDescription的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!