仪器测试与层次结构中的视图 ID 不匹配
Instrumentation test doesn't match view ids from hierarchy
简而言之,我正在尝试使用 Espresso 将视图与 ID 相匹配,例如 R.id.signCheckbox
。当我尝试匹配该视图时,如果很明显该视图存在,我将收到 NoMatchingView 异常。
经过一些调试后,我发现在我的测试 class 中,当我评估 R.id.signCheckbox
时,我会得到 ID:-1000984
。在 NoMatchingViewException
的 cause
中,您实际上可以以某种格式读取整个视图层次结构。我发现复选框有不同的 ID 2131362821
。我已经阅读了项目 R.java
,它还将 2131362821
分配给 R.id.signCheckbox
。
因此,当我匹配 withId(2131362821)
时,它确实有效。为什么它不能与 R.id.signCheckbox
一起使用以及 -1000984
id 来自哪里?
看来老 Invalidate/Restart/Clean/Rebuild 解决了这个问题。
ID 仍然是负数(如 -1000984),与 R.java ID 不匹配,但 Espresso 将成功匹配视图。
简而言之,我正在尝试使用 Espresso 将视图与 ID 相匹配,例如 R.id.signCheckbox
。当我尝试匹配该视图时,如果很明显该视图存在,我将收到 NoMatchingView 异常。
经过一些调试后,我发现在我的测试 class 中,当我评估 R.id.signCheckbox
时,我会得到 ID:-1000984
。在 NoMatchingViewException
的 cause
中,您实际上可以以某种格式读取整个视图层次结构。我发现复选框有不同的 ID 2131362821
。我已经阅读了项目 R.java
,它还将 2131362821
分配给 R.id.signCheckbox
。
因此,当我匹配 withId(2131362821)
时,它确实有效。为什么它不能与 R.id.signCheckbox
一起使用以及 -1000984
id 来自哪里?
看来老 Invalidate/Restart/Clean/Rebuild 解决了这个问题。
ID 仍然是负数(如 -1000984),与 R.java ID 不匹配,但 Espresso 将成功匹配视图。