Android JUnit4 java.lang.NoClassDefFoundError
Posted guangdeshishe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android JUnit4 java.lang.NoClassDefFoundError相关的知识,希望对你有一定的参考价值。
在进行JUnit4进行javaTest(非androidTest)测试时报错,提示找不到项目中的类:
java.lang.NoClassDefFoundError: com/xxxx/$ConnectionListener
at com.xxx.XxxxUtilTest.getCurrentTime(XxxxUtilTest.java:12)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在项目中创建一个测试类,发现是可以正常运行的,通过分析发现,找不到的那个Class是因为构造方法中用到了Android SDK中的api,导致该类无法在javaTest中创建对象,只能在androidTest中创建
解决办法:
检查所测试的那个类以及它的父类,在构造方法或者静态变量/静态方法中是否有引用到Android SDK中的API!
如果该测试的类需要Android运行环境,应该放到AndroidTest中进行测试!
以上是关于Android JUnit4 java.lang.NoClassDefFoundError的主要内容,如果未能解决你的问题,请参考以下文章
junit4启动测试时发生java.lang.NullPointerException的错误