微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使现代Multidex与旧版API上的测试结合使用

如何解决如何使现代Multidex与旧版API上的测试结合使用

我有一个使用Multidex设置的应用程序,似乎可以在较旧的Android API上加载和运行,但是,有时我从检测到的测试运行程序中收到错误,发现它找不到任何测试。我可以找到有关如何将multidex添加到Android应用程序的详细信息,但是有几种解决方案取决于所使用的支持库,而且似乎没有一个解决方案可以使用当前推荐的AndroidX库直接解决使用multidex运行测试的问题。在Android API级别19上,当前出现此错误

$ ./gradlew connectedCheck
> Task :app:connectedDebugAndroidTest
Starting 0 tests on API-19(AVD) - 4.4.2

com.android.build.gradle.internal.testing.ConnectedDevice > No tests found.[API-19(AVD) - 4.4.2] Failed 
No tests found. This usually means that your test classes are not in the form that your test runner
expects (e.g. don't inherit from TestCase or lack @Test annotations).

在具有API级别21的仿真器上运行此程序可以成功运行所有测试。我没有启用Proguard或缩小功能。为了启用Multidex,我进行了以下更改。我将此添加到应用程序的build.gradle:

android {
    defaultConfig {
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
}

dependencies {
    implementation "androidx.multidex:multidex:2.0.1"
    androidTestImplementation 'org.mockito:mockito-core:3.4.6'
    androidTestImplementation 'com.linkedin.dexmaker:dexmaker:2.28.0'
    androidTestImplementation 'com.linkedin.dexmaker:dexmaker-mockito:2.28.0'
}

我的清单定义了一个从android:name属性中的androidx.multidex.MultiDexApplication继承的类。

我已经提到过为Test应用程序在AndroidManifest.xml中添加multidex测试运行器,但是我目前没有明确的清单,它似乎只是在旧的Android支持库的上下文中,而不是AndroidX。我需要做些什么才能使仪器化测试能够在API级别16-19上与Multidex和AndroidX一起使用?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。