转换异常 - AndroidJUnitRunner 无法转换为 RoboMonitoringInstrumentation

Cast Exception - AndroidJUnitRunner cannot be cast to RoboMonitoringInstrumentation

正在进行 Android 插桩测试以启动和测试此片段

但我是 运行 这个讨厌的错误。

java.lang.ClassCastException: androidx.test.runner.AndroidJUnitRunner cannot be cast to org.robolectric.android.fakes.RoboMonitoringInstrumentation
at org.robolectric.android.internal.LocalActivityInvoker.getInstrumentation(LocalActivityInvoker.java:153)
at org.robolectric.android.internal.LocalActivityInvoker.startActivity(LocalActivityInvoker.java:40)
at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:265)
at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:226)
at androidx.fragment.app.testing.FragmentScenario$Companion.internalLaunch$fragment_testing_release(FragmentScenario.kt:588)
at androidx.fragment.app.testing.FragmentScenario$Companion.launchInContainer(FragmentScenario.kt:559)
at com.example.android.architecture.blueprints.todoapp.taskdetail.TaskDetailFragmentTest.activeTasks_displayedInUi(TaskDetailFragmentTest.kt:35)Tests ran to completion.

这些是我正在使用的依赖项

一直在网上寻找答案,但我没有找到任何有用的发现。

我可能遗漏了什么?

您应该检查 Roboelectric Dependency 并确保它是 testImplementation

在我的例子中,我使用的是这个版本

implementation "org.robolectric:robolectric:4.5.1

当我切换到测试实现时错误消失了。

testImplementation "org.robolectric:robolectric:4.5.1"