相关疑难解决方法(0)

活动永远不会变成请求的状态“[DESTROYED、RESUMED、STARTED、CREATED]”(最后一个生命周期转换=“PRE_ON_CREATE”)

这不是一个重复的问题。
我已经看过类似的问题。我已经添加了我上次提到的问题。

我的问题是测试执行了,但我必须为每个测试手动打开应用程序。

截屏

你可以看到我已经等了18秒才打开应用程序。它会等到我手动打开应用程序,或者在超时后显示此错误。

活动永远不会变成请求的状态“[DESTROYED、RESUMED、STARTED、CREATED]”(最后一个生命周期转换=“PRE_ON_CREATE”)

这篇文章中,我认为问题出在我正在使用的设备上Redmi Note 5
disabled animations也有这个MIUI optimization选择。

感谢您提供在小米设备上自动运行测试的帮助。

手动运行自动化 UI 测试没有意义。

更新 1
它仅针对启动器/主要活动执行。
它不适用于其他活动。

更新 2
我也碰巧有一台 Redmi 4。测试在该设备上按预期工作,无需任何代码更改。

提到的SO问题

以及相关问题,

添加代码片段和依赖项供任何想要查看的人使用,

测试代码

import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4ClassRunner::class)
class MainActivityTest {
    @Test
    fun test_isActivityInView() {
        val activityScenario …
Run Code Online (Sandbox Code Playgroud)

android android-espresso xiaomi

14
推荐指数
3
解决办法
6840
查看次数

AssertionError:活动永远不会变成请求的状态“[DESTROYED、STARTED、RESUMED、CREATED]”(最后一个生命周期转换=“PRE_ON_CREATE”)

我最近更新了我的Android 应用程序项目(Android Gradle Plugin 7.0.3、targetSdk 30、JVM 11)的Travis CI 配置以使用新的命令行工具。我选择启动模拟器来运行仪器测试。我在用。system-images;android-19;google_apis;armeabi-v7aandroidx.test.espresso:espresso-core:3.4.0

模拟器启动并执行仪器测试,connectedDebugAndroidTest但全部失败并出现以下错误:

AboutActivityTest > renderBuildInformation[test(AVD) - 4.4.2] FAILED 
  java.lang.AssertionError: Activity never becomes requested state 
  "[DESTROYED, STARTED, RESUMED, CREATED]" (last lifecycle transition = "PRE_ON_CREATE")
  at androidx.test.core.app.ActivityScenario.waitForActivityToBecomeAnyOf(ActivityScenario.java:338)
...
Run Code Online (Sandbox Code Playgroud)

Gradle 然后输出:

Caused by: org.gradle.api.GradleException: There were failing tests. See the report 
  at: file:///home/travis/build/Umweltzone/Umweltzone/Umweltzone/build/reports/androidTests/connected/index.html
  at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.doTaskAction(DeviceProviderInstrumentTestTask.java:388)
  at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:63)
  at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
  ...
Run Code Online (Sandbox Code Playgroud)

完整构建日志:

如果我在 Pixel 2 设备、Android 11 (SDK 30) 上本地运行相同的测试,则会成功执行。
如何修复 Travis CI / Android 模拟器配置? …

android android-emulator android-lifecycle travis-ci android-espresso

7
推荐指数
0
解决办法
1374
查看次数