gpt4 book ai didi

运行测试时出现 Android/Espresso Intent 错误

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:35 27 4
gpt4 key购买 nike

在运行 Espresso 测试时,我在 Jenkins 和某些队友计算机上收到以下错误。我搜索了这个错误,发现其中有很多与超时或某些动画有关。所有设备都关闭了动画。

例如:上周我遇到了这个问题,我卸载了所有的 Android Studio,删除了代码,然后重新安装了所有的东西。它不起作用。我还升级了 Java 和 JDK。之后我仍然遇到这个问题。然后有一天它起作用了。我不知道为什么。

现在我的同事遇到了这个问题。当针对一台设备 (5.1) 而不是另一台 (6.0) 运行时,会出现此问题。另一位同事遇到了相反的问题。

所以我的问题是 - 我可以检查什么?将采取什么步骤?我们比较了设备上的注释——所有 IDE 都与版本号和构建工具等相匹配。我的想法不多了。

谢谢!

java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.COMPANY.espresso/com.COMPANY.activity.LauncherActivity } within 45 seconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1469050322683 and now the last time the queue went idle was: 1469050322683. If these numbers are the same your activity might be hogging the event queue.
at android.support.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:360)
at android.support.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:219)
at android.support.test.rule.ActivityTestRule$ActivityStatement.evaluate(ActivityTestRule.java:268)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1862)

最佳答案

我的第一个猜测是,ProgressBar 阻塞了 Espresso,并且您的 Activity 的内容 View 包含一个不确定的 ProgressBar,它总是在 onResume 返回之前可见或变得可见。动画使应用程序保持忙碌,Espresso 会一直等待直到超时。这会造成您发布的错误。

因为您的测试有时会正常运行,所以我假设 ProgressBar 的可见性取决于后台任务。如果在 Espresso 超时之前进度条被隐藏(或从 View 层次结构中删除),测试将运行。

第二个猜测是,您正在为后台作业使用 AsyncTasks。如果您在 onResume 返回之前开始长时间运行 AsyncTasks,这也会产生您发布的错误。

检查 ProgressBar 是否是您可以将其完全删除或将其不确定的可绘制对象替换为静态可绘制对象(即 ColorDrawable)的原因。

关于运行测试时出现 Android/Espresso Intent 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com