线程“main”中的异常java.lang.NoClassDefFoundError:junit / textui / ResultPrinter

时间:2013-10-22 11:12:58

标签: java android junit android-studio

我正在尝试在Android Studio 0.3.0中编译我的Android项目。今天我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 3 more

Process finished with exit code 1

进行一些网络搜索让我相信这个问题与JUnit有某种关系。但是,我没有在我的项目中使用JUnit。也许我无意中打开了一些选项?在这种情况下,如何在项目中禁用单元测试?有任何想法吗?

6 个答案:

答案 0 :(得分:57)

终于找到了它。它位于“运行/调试配置”对话框中。禁用JUnit并再次编译。

答案 1 :(得分:27)

通常这个问题是由于错误的测试类型引起的: Junit 而不是 Android测试 Select Android test instead of JUnit Select Android test instead of JUnit

答案 2 :(得分:6)

强制项目进行同步"通过菜单:工具> Android>使用Gradle文件同步项目 或强迫项目进行同步"通过在build.gradle文件中进行虚假更改(添加一个空格然后将其删除,然后单击"立即同步")。

答案 3 :(得分:0)

在更改了一些public class Main { private static final SimpleDateFormat oldSimpleDateFormat = new SimpleDateFormat("dd.MM.YYYY"); private static final SimpleDateFormat newSimpleDateFormat = new SimpleDateFormat("YYMMdd"); private static String oldDate = "21.11.2011"; private static Date myDate = oldSimpleDateFormat.parse(oldDate, new ParsePosition(0)); private static String newDate = newSimpleDateFormat.format(myDate); public static void main(String[] args){ System.out.println(myDate); System.out.println(newDate); } } 插件和依赖项之后,我有两次遇到此问题。

只需关闭Android Studio即可为我修复(版本2.1.2和2.2)。

答案 4 :(得分:0)

所有答案都很好 -

确保sourceSets已注册测试目录。

android{
    ...

    defaultConfig {
         ...
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }


    sourceSets {
        androidTest {
            java.srcDirs = ['src/androidTest/java']
        }
    }
}

dependencies{
    ... 
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test:runner:0.5'
}

答案 5 :(得分:-2)

只要提出适合我的解决方案,如果您是第一次设置环境,就应该尝试这个:

对于Windows: 1)在环境变量中添加一个新的“系统变量” ANDROID_SDK_HOME = D:\ Program Files \ android-sdk-windows(选择你的android sdk主目录)

2)修改系统变量Path,添加“%Android_SDK_HOME%\ tools;”