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

Abh*_*bhi 14 android android-espresso xiaomi

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

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

截屏

你可以看到我已经等了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 = ActivityScenario.launch(MainActivity::class.java)
        onView(withId(R.id.layout_activity_main)).check(matches(isDisplayed()))
    }
}
Run Code Online (Sandbox Code Playgroud)

依赖关系

testImplementation "junit:junit:4.13.2"
androidTestImplementation "androidx.test:core:1.4.0"
androidTestImplementation "androidx.test:runner:1.4.0"
androidTestImplementation "androidx.test:rules:1.4.0"
androidTestImplementation "androidx.test.ext:junit-ktx:1.1.3"
androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
Run Code Online (Sandbox Code Playgroud)

小智 23

这是权限问题。只需在 Android 手机设置中允许此应用程序自动启动弹出窗口即可。

\n

然后启动 USB 调试并允许测试应用程序链启动。

\n

它在小米 11 \xe9\x9d\x92\xe6\x98\xa5\xe7\x89\x88 上对我有用。

\n

您可以在“设置”->“应用程序”->“管理应用程序”\n->“您的应用程序”->“权限”中找到这些设置

\n

  • 仍然浪费时间,无法解决这个问题...什么是自动启动和弹出窗口? (2认同)
  • 传说至今仍在浪费时间。 (2认同)

Man*_*our 9

我有同样的问题。有时会因为使用而出现问题

androidTestImplementation 'androidx.fragment:fragment-testing:1.3.6'
Run Code Online (Sandbox Code Playgroud)

代替

debugImplementation 'androidx.fragment:fragment-testing:1.3.6'
Run Code Online (Sandbox Code Playgroud)

如果您的测试场景中有片段,请添加此依赖项debugImplementation并再次检查。感谢这篇文章的回答。


Pra*_*tre 5

我在 Android 11 设备上收到以下错误

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

我在这上面浪费了很多时间,当我将设备切换到 Android 10 时找到了解决方案。

如果有人遇到此类问题,请执行以下操作来解决它,

  1. 在应用程序设置中启用自动启动
  2. 从应用程序权限设置中授予“在后台运行时显示弹出窗口”的权限


归档时间:

查看次数:

6840 次

最近记录:

2 年,4 月 前