Google Fabric:未连接 UiAutomation

Google Fabric: UiAutomation not connected

将应用程序部署到 Google Play Beta 后,我在 Crashlytics 中看到了下一个问题(6 - 7 位用户受到影响)

Fatal Exception: java.lang.IllegalStateException: UiAutomation not connected!
   at android.app.UiAutomation.throwIfNotConnectedLocked(UiAutomation.java:971)
   at android.app.UiAutomation.disconnect(UiAutomation.java:237)
   at android.app.Instrumentation.finish(Instrumentation.java:222)
   at android.support.test.runner.MonitoringInstrumentation.finish(MonitoringInstrumentation.java:351)
   at android.support.test.runner.AndroidJUnitRunner.finish(AndroidJUnitRunner.java:405)
   at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:394)
   at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1960)

好像是google测试设备。 关于修复有什么想法吗?

这次崩溃似乎与您的应用中的 UI 测试有关。如果您没有任何 UI 测试并且只有在创建项目期间自动添加的默认设置,您应该从 build.gradle 中删除行 testInstrumentationRunner在默认配置中

  defaultConfig {
   ....
   testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
} 

and androidTestCompile, testCompile in dependencies

dependencies {
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{
    exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
...

似乎没什么可担心的(不要依赖已接受的答案,也不要删除您的测试),因为已报告在创建 时发生崩溃google Play 商店的预发布报告,其中执行了一些 UI 自动化测试。如果您跟踪发生此错误的设备,那么您会看到所有路径都指向发布前报告。

您可以了解有关发布前测试报告的更多信息here

有一件事是肯定的:您在 UI 上有问题。在大多数情况下,当您显示一个持续显示太长时间的进度对话框时,就会发生这种情况。在这种情况下,Google 爬虫超时并引发异常。 我的建议是:一定不要阻止 UI 无限对话。

有趣的是,当我的应用程序在发布前由 google 测试时,我遇到了这个崩溃。我真的不知道google团队在做什么。