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

Android Instrumentation测试在Firebase Test Lab上崩溃,但在本地运行良好

如何解决Android Instrumentation测试在Firebase Test Lab上崩溃,但在本地运行良好

我们最近开始在我们的应用程序中添加Espresso仪器测试,我正在尝试在CircleCI上设置测试的夜间运行。我让Circle部分开始工作,并且按预期在Firebase Test Lab上触发了测试,但是每次出现以下情况,测试运行程序都会崩溃:

java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/swing/tree/DefaultTreeCellRenderer;
     FATAL EXCEPTION: Instr: androidx.test.runner.AndroidJUnitRunner
Process: [REDACTED],PID: 10933
java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/swing/tree/DefaultTreeCellRenderer;
    at java.lang.class.classForName(Native Method)
    at java.lang.class.forName(Class.java:453)
    at androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:72)
    at androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
    at androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:793)
    at androidx.test.runner.AndroidJUnitRunner.buildrequest(AndroidJUnitRunner.java:547)
    at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:390)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2075)
Caused by: java.lang.classNotFoundException: Didn't find class "javax.swing.tree.DefaultTreeCellRenderer" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar",zip file "/system/framework/android.test.mock.jar",zip file "/data/app/[REDACTED]/base.apk",zip file "/data/app/[REDACTED]/base.apk"],nativeLibraryDirectories=[/data/app/[REDACTED]/lib/arm64,/data/app/[REDACTED]/lib/arm64,/data/app/[REDACTED]/base.apk!/lib/arm64-v8a,/system/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
    at java.lang.classLoader.loadClass(ClassLoader.java:379)
    at java.lang.classLoader.loadClass(ClassLoader.java:312)
    ... 8 more

我们确实将这些包含在我们的build.gradle中:

androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test:rules:1.2.0'

什么可能导致该异常?

https://console.firebase.google.com/中手动使用Firebase测试实验室Web GUI时遇到相同的问题

无论是在Android Studio中还是在adb shell am instrument -w -r -e debug false -e package '[REDACTED]' [REDACTED].debug.test/androidx.test.runner.AndroidJUnitRunner上,测试都可以在本地正常运行。

解决方法

对于我们的特殊情况,它是通过在--environment-variables命令中使用gcloud firebase test android run来设置测试包(我们的应用程序包后跟.test)和{{1 }}。像这样:

debug=false

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