我的应用程序有 bdd-test ,我使用 compose 和 espresso,但出现此错误: java.lang.IllegalStateException:应用程序中找不到撰写层次结构。可能的原因包括:(1)调用setContent的Activity没有启动; (2) setContent没有被调用; (3) setContent 在 ComposeTestRule 运行之前被调用。如果 Activity 调用了 setContent,请确保 Activity 在 ComposeTestRule 运行后启动。
这是我的代码的一部分: @WithJunitRule 类 ComposeRuleHolder {
companion object {
lateinit var composeTestRule: ComposeTestRule
}
@Rule(order = 0)
@JvmField
var composeRule: ComposeTestRule = createEmptyComposeRule()
@Before
fun before() {
composeTestRule = composeRule
}
}
在课堂上进行测试后:
fun myPage(func: MyPage.(ComposeTestRule) -> Unit) = MyPage.apply {
func(
ComposeRuleHolder.composeTestRule
)
}
@OptIn(ExperimentalTestApi::class)
object MyPage { ...
....
}
这是有效的,但大约两周后我遇到了这个错误: 任何想法? 谢谢
TL;DR 确保您的手机或模拟器工作正常并且处于活动状态,而不是被阻止
这很有趣,但就我而言,设备被阻止了。我的意思是,我正在使用物理设备而不是模拟器进行测试,它进入了省电模式,屏幕关闭,手机被阻止。因此 android studio 尝试启动该 Activity 但无法执行此操作。确保您的手机或模拟器工作正常并且处于活动状态,而不是被阻止