You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redmi Note5运行Espresso测试报错Activity无法进入请求生命周期状态

解决方案

1. 调整MIUI系统权限设置

MIUI对后台启动Activity有独有的拦截规则,即便关闭了MIUI优化也可能残留限制,需要手动开启以下权限:

  • 找到测试App的应用信息页,进入「权限管理」
  • 开启「后台弹出界面」权限(部分MIUI版本叫「显示在其他应用上层」/「悬浮窗」权限)
  • 开启「自启动」权限
  • 重启设备后再运行测试验证

2. 测试代码适配修改

如果系统权限调整后还是有问题,可对测试代码做以下适配:

针对非主Activity的测试,改用Intent方式指定启动Flag

val intent = Intent(ApplicationProvider.getApplicationContext(), TargetActivity::class.java).apply {
    addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
}
val activityScenario = ActivityScenario.launch<TargetActivity>(intent)

降级ActivityScenario版本

当前使用的androidx.test:core:1.4.0版本在部分MIUI设备上存在兼容问题,可降级到1.3.0版本验证:

androidTestImplementation "androidx.test:core:1.3.0"

3. 替代方案

如果以上方案都不生效,可改用ActivityTestRule(虽然已废弃,但对旧版本MIUI兼容性更好):

@get:Rule
val activityRule = ActivityTestRule(TargetActivity::class.java, false, false)

@Test
fun test_activityDisplay() {
    activityRule.launchActivity(null)
    onView(withId(R.id.target_layout)).check(matches(isDisplayed()))
}

内容的提问来源于stack exchange,提问作者Abhimanyu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 15:06:00