无法调试Android InstrumentedTest + ActivityScenario + Koin + Mocck

尝试在设备上调试androidTests时出现以下错误。出现的唯一错误是以下内容,该测试将永远挂起,直到我停止它为止。如果我运行测试,测试就可以完成,问题是当我尝试进行调试时。我已经尝试过:

  1. 禁用即时运行
  2. 通过kill-server和start-server命令重新启动adb。
  3. 重新启动android studio。
  4. 使缓存无效并重新启动。
  5. 不同的手机
  6. 不同的计算机

这是我在logcat中看到的错误:

W/ting.ventasplu: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
A/ting.ventasplu:nstrumentation.cc:267] Check failed: m == frame.method_ (m=0xb0a66f30,frame.method_=0x6fac48ac) Expected void java.lang.Object.wait(long,int),Found void java.lang.Object.wait(long,int)

这是InstrumentedTestCode:

@RunWith(AndroidJUnit4::class)
class Loginactivity2InstrumentedTest  {

    lateinit var scenario: activityScenario<Loginactivity>

    val viewModel: LoginViewModel = mockk(relaxed = true)

    val app: KoinTestVentasPlusApplication = ApplicationProvider.getapplicationContext()


    @After
    fun cleanup() {
        scenario.close()
    }

    @Test
    @SmallTest
    fun test() {
        app.loadmodules(listOf(module { single (override = true) {viewModel} })) {
            scenario = launchactivity()
        }
    }

}

我正在使用自定义测试运行程序:

class KoinTestRunner: AndroidJUnitRunner() {
    override fun newApplication(cl: ClassLoader?,classname: String?,context: Context?): Application {
        return super.newApplication(
                cl,KoinTestVentasPlusApplication::class.java.name,context
        )
    }
}

这是自定义应用程序代码:

class KoinTestVentasPlusApplication: Application() {       

    override fun onCreate() {
        super.onCreate()   

        startKoin {
            androidLogger()
            androidContext(this@KoinTestVentasPlusApplication)
            modules(emptyList())
        }
    }

    internal fun loadmodules(modules: List<Module>,block: () -> Unit) {
        loadKoinmodules(modules)
        block()
        unloadKoinmodules(modules)
    }
}

这是上述库的gradle文件中的依赖项:

androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.1'
androidTestImplementation 'androidx.test:core-ktx:1.2.0'
androidTestImplementation ("org.koin:koin-test:$project.koin"){ exclude group: 'org.mockito' }
androidTestImplementation "io.mockk:mockk-android:1.9.2"
wowkaka7788414 回答:无法调试Android InstrumentedTest + ActivityScenario + Koin + Mocck

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3034383.html

大家都在问