加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

升级到Java 8和构建工具版本25后,Android测试用例失败

发布时间:2020-12-15 02:17:21 所属栏目:Java 来源:网络整理
导读:我有一堆运行正常的测试用例.但是,一旦我的项目更新为构建工具版本25并且 Java已更新为JDK 1.8,我的所有测试用例都会失败. 当我运行我的测试时,我使用./gradlew cAT,我收到错误消息: 由于’java.lang.NullPointerException’导致检测运行失败 com.android.b
我有一堆运行正常的测试用例.但是,一旦我的项目更新为构建工具版本25并且 Java已更新为JDK 1.8,我的所有测试用例都会失败.

当我运行我的测试时,我使用./gradlew cAT,我收到错误消息:

由于’java.lang.NullPointerException’导致检测运行失败
com.android.builder.testing.ConnectedDevice>没有发现任何测试.[Nexus 6 – 6.0.1]失败

要么

对Nexus 6 – 6.0.1的测试失败:由于’java.lang.ClassNotFoundException’导致仪表运行失败

com.android.builder.testing.ConnectedDevice>没有发现任何测试.[Nexus 6 – 6.0.1]失败

我的build.gradle有以下几行:

androidTestCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test:runner:0.4'
androidTestCompile 'com.android.support.test:rules:0.4'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'

知道解决方案可能是什么?

更新:

当我尝试使用./gradlew -cAT -s从gradle运行相同的操作时,我看到以下异常:

引起:java.lang.NoClassDefFoundError:org / gradle / logging / ConsoleRenderer
????????在com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.runTests(DeviceProviderInstrumentTestTask.java:140)
????????在org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
????????at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:228)
????????在org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
????????at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
????????在org.gradle.api.internal.AbstractTask $TaskActionWrapper.execute(AbstractTask.java:621)
????????在org.gradle.api.internal.AbstractTask $TaskActionWrapper.execute(AbstractTask.java:604)
????????at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
????????在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
????????……还有68个

谷歌搜索告诉我,这可能是一个特殊问题,但我的测试在同一个gradle版本中运行良好.

解决方法

事实证明,在我的基本上下文初始化期间,根本原因是一个空指针!

我的学习:

>无论我们使用IDE还是gradle来运行测试用例,他们最终都会调用am instrumentation命令(https://developer.android.com/studio/test/command-line.html).>运行命令adb shell am instrument -w -r -e debug true -e class(注意我已将debug设置为true).>同时,让你的adb logcat运行.这告诉我为什么我遇到了NPE.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读