android - Espresso UI 测试已取消且没有错误消息
问题描述
但是 ExampleInstrumentedTest 正在工作。
这是我的测试文件,我已经注释掉所有内容,留下一个空函数
@RunWith(AndroidJUnit4ClassRunner::class)
class ExploreFragmentTest {
@get: Rule
val activityRule = ActivityScenarioRule(MainActivity::class.java)
@Test
fun test_isSearchButtonDisplayed() {
//onView(withId(R.id.btn_search)).check(matches(isDisplayed()))
}
}
这是我在 app/gradle 中的依赖项
// AndroidX Test - Instrumented testing
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test:rules:1.4.0'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0'
仍在寻找答案:如何查看实际的错误信息???
我们可以在错误反馈上做得更好吗?
解决方案
我有同样的错误。
我使用 adb 和 logcat 查看日志:adb logcat
我在日志中发现了这个错误:
java.lang.NoSuchMethodError: No static method registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite;)V in class Lcom/google/protobuf/GeneratedMessageLite; or its super classes (declaration of 'com.google.protobuf.GeneratedMessageLite' appears in /data/app/~~BuZ1RxiHRJybZNpyUcjGIw==/-xuI8WeeYUojtsn-ncVI-aw==/base.apk)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at com.google.firebase.perf.v1.ApplicationInfo.<clinit>(ApplicationInfo.java:1085)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at com.google.firebase.perf.v1.ApplicationInfo.newBuilder(ApplicationInfo.java:533)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at com.google.firebase.perf.transport.TransportManager.finishInitialization(TransportManager.java:226)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at com.google.firebase.perf.transport.TransportManager.syncInit(TransportManager.java:220)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at com.google.firebase.perf.transport.TransportManager.$r8$lambda$LuAwHBxy50Yf-ziHqcD54KjEPtk(Unknown Source:0)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at com.google.firebase.perf.transport.TransportManager$$ExternalSyntheticLambda1.run(Unknown Source:2)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
01-30 08:23:34.286 5932 6012 E AndroidRuntime: at java.lang.Thread.run(Thread.java:920)
为了解决这个问题,我protobuf-lite
从androidx.test.espresso:espresso-contrib:3.4.0
我的build.gradle
文件中排除:
androidTestImplementation ("androidx.test.espresso:espresso-contrib:3.4.0") {
exclude module: "protobuf-lite"
}
现在我的测试成功了!
推荐阅读
- javascript - React-Native/Firebase:来自 JS 的格式错误的调用:字段大小不同
- symfony - symfony messenger 多总线
- php - wp 使用 ACF 关系按成分类别过滤食谱
- ios - 我想在单击单元格时更改集合视图单元格的图像
- reactjs - 如何使用 Github Actions 保存构建文件(React)?
- java - 如何解决此计算器错误?我是初学者
- python - 并非所有字段都在 django admin 中正确显示
- python - 我如何将这些数字写入其中的列表,因为我尝试使用 for 循环但它不起作用并将其写入名为 list_of_numbers 的列表
- biginteger - 不调用大量函数
- firebase - Flutter Web NoSuchMethodError 上的 Firebase 火库。“文档”