Dan*_*dek 16 android android-studio android-espresso android-orchestrator
我很难在 Android Studio 中运行仪器测试。
当我尝试运行多个测试用例时,出现“测试框架意外退出”:
...并且所有测试继续在模拟器中运行,但 Android Studio 没有返回结果。
Logcat 显示了这一点:
...
03-17 11:38:59.236 1699 1719 W ActivityManager: Scheduling restart of crashed service androidx.test.orchestrator/.OrchestratorService in 1000ms
03-17 11:38:59.236 1699 1719 W ActivityManager: Crash of app androidx.test.orchestrator running instrumentation ComponentInfo{androidx.test.orchestrator/androidx.test.orchestrator.AndroidTestOrchestrator}
03-17 11:38:59.236 1699 1721 W zygote : kill(-8537, 9) failed: No such process
03-17 11:38:59.238 1699 13861 W Binder : Outgoing transactions from this process must be FLAG_ONEWAY
03-17 11:38:59.238 1699 13861 W Binder : java.lang.Throwable
03-17 11:38:59.238 1699 13861 W Binder : at android.os.BinderProxy.transact(Binder.java:752)
03-17 11:38:59.238 1699 13861 W Binder : at android.app.IInstrumentationWatcher$Stub$Proxy.instrumentationFinished(IInstrumentationWatcher.java:160)
03-17 11:38:59.238 1699 13861 W Binder : at com.android.server.am.InstrumentationReporter$MyThread.run(InstrumentationReporter.java:86)
03-17 11:38:59.281 1699 1721 W zygote : kill(-8537, 9) failed: No such process
03-17 11:38:59.323 1699 1721 W zygote : kill(-8537, 9) failed: No such process
03-17 11:38:59.353 13845 13845 W app_process: Unexpected CPU variant for X86 using defaults: x86
03-17 11:38:59.362 1699 1721 W zygote : kill(-8537, 9) failed: No such process
03-17 11:38:59.385 1699 1741 W PackageManager: Code path for androidx.test.orchestrator changing from /data/app/androidx.test.orchestrator-fgDRlA7iNSNiyWm4dLj4hg== to /data/app/androidx.test.orchestrator-6QljegpCqjAHwDuS_O9G9Q==
03-17 11:38:59.385 1699 1741 W PackageManager: Resource path for androidx.test.orchestrator changing from /data/app/androidx.test.orchestrator-fgDRlA7iNSNiyWm4dLj4hg== to /data/app/androidx.test.orchestrator-6QljegpCqjAHwDuS_O9G9Q==
03-17 11:38:59.424 13845 13870 W MessageQueue: Handler (android.os.Handler) {9320712} sending message to a Handler on a dead thread
03-17 11:38:59.424 13845 13870 W MessageQueue: java.lang.IllegalStateException: Handler (android.os.Handler) {9320712} sending message to a Handler on a dead thread
03-17 11:38:59.424 13845 13870 W MessageQueue: at android.os.MessageQueue.enqueueMessage(MessageQueue.java:545)
03-17 11:38:59.424 13845 13870 W MessageQueue: at android.os.Handler.enqueueMessage(Handler.java:662)
03-17 11:38:59.424 13845 13870 W MessageQueue: at android.os.Handler.sendMessageAtTime(Handler.java:631)
03-17 11:38:59.424 13845 13870 W MessageQueue: at android.os.Handler.sendMessageDelayed(Handler.java:601)
03-17 11:38:59.424 13845 13870 W MessageQueue: at android.os.Handler.post(Handler.java:357)
03-17 11:38:59.424 13845 13870 W MessageQueue: at android.os.ResultReceiver$MyResultReceiver.send(ResultReceiver.java:57)
03-17 11:38:59.424 13845 13870 W MessageQueue: at com.android.internal.os.IResultReceiver$Stub.onTransact(IResultReceiver.java:58)
03-17 11:38:59.424 13845 13870 W MessageQueue: at android.os.Binder.execTransact(Binder.java:697)
03-17 11:38:59.436 13768 13850 W zygote : Long monitor contention with owner firebase-iid-executor (13808) at void java.lang.AbstractStringBuilder.ensureCapacityInternal(int)(AbstractStringBuilder.java:124) waiters=0 in java.util.TimeZone java.util.TimeZone.getTimeZone(java.lang.String) for 114ms
03-17 11:38:59.519 13768 13768 W ResourceType: Failure getting entry for 0x7f0c0112 (t=11 e=274) (error -75)
03-17 11:38:59.520 13768 13768 W ResourceType: Failure getting entry for 0x7f0c0113 (t=11 e=275) (error -75)
03-17 11:38:59.608 1571 1809 E : Couldn't opendir /data/app/vmdl185214765.tmp: No such file or directory
03-17 11:38:59.608 1571 1809 E installd: Failed to delete /data/app/vmdl185214765.tmp: No such file or directory
03-17 11:38:59.695 1699 1719 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:androidx.test.orchestrator flg=0x4000010 (has extras) } to com.google.android.gms/.games.chimera.GamesSystemBroadcastReceiverProxy
03-17 11:38:59.702 1699 1719 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:androidx.test.orchestrator flg=0x4000010 (has extras) } to com.google.android.gms/.photos.autobackup.PhotosAppUninstalledReceiver
...
Run Code Online (Sandbox Code Playgroud)
我的测试依赖项:
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-web:3.2.0'
androidTestImplementation ('androidx.test.espresso:espresso-contrib:3.2.0') {
exclude module: 'support-compat'
}
androidTestImplementation 'androidx.test.espresso:espresso-intents:3.2.0'
androidTestImplementation 'androidx.test:core:1.2.0'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test:rules:1.2.0'
androidTestUtil 'androidx.test:orchestrator:1.2.0'
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
Run Code Online (Sandbox Code Playgroud)
我发现很少有关于“测试框架意外退出”和“来自此进程的传出事务必须是 FLAG_ONEWAY”的参考资料来禁用 Android Studio 中的即时运行,但是由于 3.5 没有即时运行,它被重命名为应用代码更改,并且我看不到任何关闭它的选项。
任何想法如何进行?
请帮忙。
我在 AS 4.1.1 上,如果您使用fragment-testing工件,该错误仍然存在。上述解决方案均无效。
在我的情况下,解决问题的是core从工件中排除依赖
debugImplementation ("androidx.fragment:fragment-testing:1.2.5", {
exclude group: 'androidx.test', module: 'core'
})
Run Code Online (Sandbox Code Playgroud)
在 Android Studio 4.1 中遇到相同的错误,添加以下依赖项
androidTestImplementation "androidx.test.espresso:espresso-core:x.x.x"
Run Code Online (Sandbox Code Playgroud)
随着添加
android {
defaultConfig {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
Run Code Online (Sandbox Code Playgroud)
解决了问题
小智 4
看起来像是 AS 3.6 的一个 Bug。
根据 Reddit 中的这个帖子:https://www.reddit.com/r/androiddev/comments/f9xsz2/anyone_else_having_issues_running_androidtest/
它将在 3.6.2 中修复。
| 归档时间: |
|
| 查看次数: |
6957 次 |
| 最近记录: |