Android Espresso 测试错误:没有静态方法 loadSingleServiceOrNull()

cja*_*475 12 android kotlin android-espresso

当我 1 周前运行测试时,一切都很好,但现在我收到此错误:

java.lang.NoSuchMethodError: No static method loadSingleServiceOrNull(Ljava/lang/Class;)Ljava/lang/Object; in class Landroidx/test/internal/platform/ServiceLoaderWrapper; or its super classes (declaration of 'androidx.test.internal.platform.ServiceLoaderWrapper' appears in /data/app/com.domain.myapp-1/base.apk)
at androidx.test.espresso.base.UiControllerModule.provideUiController(UiControllerModule.java:2)
at androidx.test.espresso.base.UiControllerModule_ProvideUiControllerFactory.provideUiController(UiControllerModule_ProvideUiControllerFactory.java:1)
at androidx.test.espresso.base.UiControllerModule_ProvideUiControllerFactory.get(UiControllerModule_ProvideUiControllerFactory.java:1)
at androidx.test.espresso.base.UiControllerModule_ProvideUiControllerFactory.get(UiControllerModule_ProvideUiControllerFactory.java:2)
at androidx.test.espresso.core.internal.deps.dagger.internal.DoubleCheck.get(DoubleCheck.java:6)
at androidx.test.espresso.DaggerBaseLayerComponent$ViewInteractionComponentImpl.viewInteraction(DaggerBaseLayerComponent.java:1)
at androidx.test.espresso.Espresso.onView(Espresso.java:1)
Run Code Online (Sandbox Code Playgroud)

此行引发错误:

onView(withId(R.id.sign_in_button)).perform(click())
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?谢谢你。

kim*_*imv 23

我更新时出现问题

androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
Run Code Online (Sandbox Code Playgroud)

androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
Run Code Online (Sandbox Code Playgroud)

恢复到 3.3.0 版修复了一些问题。

  • 我有同样的问题,这解决了它。想知道根本原因是什么。 (2认同)

vah*_*zio 10

你有多个ServiceLoaderWrapper,实际上有API方法的就是其中一些,这个文件是由 带来的androidx.test:monitor,我通过强制gradle文件中的包版本来修复它,如下所示。

configurations.all {
    resolutionStrategy {
        force 'androidx.test:monitor:1.4.0'
    }
}
Run Code Online (Sandbox Code Playgroud)