Espresso 测试在更新到 Android API 28 后失败



在我的测试中,我使用逻辑启动一个活动

val startIntent = Intent(Intent.ACTION_MAIN).apply {
    setClassName(InstrumentationRegistry.getTargetContext().packageName, MyActivity::class.java.name)
    flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
InstrumentationRegistry.getInstrumentation().startActivitySync(startIntent)

当我面向 API 27 时,它工作正常,但现在我的目标是 API 28,它失败并出现异常

android.util.AndroidRuntimeException:从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?

我知道API 28进行了更改以强制使用上述标志,但是我非常清楚地指定了该标志

请尝试以下操作:

addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

最新更新