我正在尝试测试我的项目,但遇到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我尝试按照 here 中提到的方式安装 JUnit (没有我不明白的6-7个步骤)和here 。但仍然遇到同样的问题。
在挖掘异常时,我发现某些文件正在使用无法找到的libcore库(显示无法解析符号'libcore'
)。对于库 dalvik.system.VMStack
也是如此(显示无法解析符号“VMStack”
)。
最佳答案
我也遇到了同样的问题,结果是我在 Android Studio 中的设置导致的。本质上,Android Studio 默认设置(或者可能是我在某个时刻设置的东西?)是在 Java JUnit 而不是 Android JUnit 中运行我的测试。
要检查此问题,请转到顶部栏并查找“运行”下拉列表,然后尝试单击“编辑配置”。您应该会看到弹出“运行/调试配置”窗口。
在最左侧的 Pane 中,应该只有“Android 应用程序”、“Android 测试”和“默认值”部分。如果任何文件位于“JUnit”文件夹中而不是“Android Tests”文件夹中,则您的测试可能无法正常运行。要修复此问题,请选择左上角的加号,然后选择“Android 测试”。此操作允许您创建新的运行配置作为 Android 测试。在顶部输入您更改运行配置的文件的任何重要信息。例如,如果“TestDB”最初位于“JUnit”下,请进行新的 Android 测试配置,选择“Class”单选按钮,然后在新文本栏中找到适当的类。您还可以使用“all in app”或“all in package”为整个测试集创 build 置。
选择“JUnit”下的所有内容并单击顶部的减号按钮删除这些运行配置非常重要。同样重要的是:如果您有机会选择运行配置(即,如果您右键单击文件/包,按“运行”,然后会显示多个运行选项),请确保您始终选择带有 Android 符号的配置!
关于java - JUnit - Android Studio - NoClassDefFoundError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30969204/