问题描述
美好的一天!我正在尝试使用 AWS Device Farm 进行仪器测试。但对于某些设备,我收到此错误:
02-17 19:22:26.157 15281 15281 E AndroidRuntime: FATAL EXCEPTION: main
02-17 19:22:26.157 15281 15281 E AndroidRuntime: Process: com.mobilesense.myapplication,PID: 15281
02-17 19:22:26.157 15281 15281 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate instrumentation ComponentInfo{com.mobilesense.myapplication.test/androidx.test.runner.AndroidJUnitRunner}: java.lang.classNotFoundException: Didn't find class "androidx.test.runner.AndroidJUnitRunner" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib64,/vendor/lib64]]
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5956)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at android.app.ActivityThread.-wrap3(ActivityThread.java)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1727)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6823)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1557)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: Caused by: java.lang.classNotFoundException: Didn't find class "androidx.test.runner.AndroidJUnitRunner" on path: DexPathList[[],/vendor/lib64]]
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at java.lang.classLoader.loadClass(ClassLoader.java:380)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at java.lang.classLoader.loadClass(ClassLoader.java:312)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5954)
02-17 19:22:26.157 15281 15281 E AndroidRuntime: ... 8 more
我的应用级gradle链接:
...
android {
compileSdkVersion 30
buildToolsversion "29.0.3"
defaultConfig {
applicationId "com.signalsense.signalsenseapp"
minSdkVersion 22
targetSdkVersion 30
versionCode 66
versionName "0.60"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments clearPackageData: 'true'
}
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinoptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
dependencies {
...
//Instrumented tests
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation 'androidx.test:runner:1.3.0'
androidTestUtil 'androidx.test:orchestrator:1.3.0'
androidTestImplementation 'androidx.test:rules:1.3.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
}
我的测试课程的一部分:
@LargeTest
@RunWith(AndroidJUnit4ClassRunner::class)
class AppTest {
@Rule
@JvmField
val rule = ActivityScenarioRule(SplashActivity::class.java)
@Rule
@JvmField
var mGrantPermissionRule =
GrantPermissionRule.grant(
"android.permission.READ_PHONE_STATE","android.permission.INTERNET","android.permission.ACCESS_NETWORK_STATE","android.permission.ACCESS_FINE_LOCATION","android.permission.ACCESS_WIFI_STATE"
)
@Test
fun testApp() {
...
}
}
我完全不明白为什么 AWS Device farm 甚至无法启动应用程序并失败。其他一些 AWS 设备通过测试正常。所有本地设备和模拟器也可以通过此测试。 请帮忙!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)