62

我正在尝试在 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。也许我无意中打开了某个选项?在这种情况下,如何在我的项目中禁用单元测试?有任何想法吗?

4

8 回答 8

57

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

于 2013-10-22T11:55:28.290 回答
27

通常这个问题是由于错误的测试类型引起的:Junit而不是Android Test 选择 Android 测试而不是 JUnit 选择 Android 测试而不是 JUnit

于 2015-07-03T07:55:35.753 回答
8

对于标准 JUnit 测试,您缺少 JUnit 库,请尝试在 build.gradle 中添加:

dependencies {
    ...
    testCompile 'junit:junit:4.12'
    ...
}

并确保将测试放在与“main”包平行的“test”目录中(仪器测试进入“androidTest”,但这是不同的设置)。

于 2015-09-14T11:18:19.207 回答
7

通过菜单强制项目“同步”:Tools > Android > Sync Project with Gradle Files 或通过在 build.gradle 文件中进行虚假更改来强制项目“同步”(添加一个空格,然后将其删除,然后单击“同步”现在”)。

于 2015-04-16T06:55:26.767 回答
1

在我的运行/调试配置中,我在 AndroidTests 和 JUnitTests 下有 MyTest。AndroidTests 下的 MyTest 配置正确,但我仍然收到 'NoClassDefFoundError: junit/textui/ResultPrinter' 错误。单击 JUnit 下的 MyTest 并按下左上角的“-”。这允许 MyTest 运行通过设备摆脱错误。

于 2015-08-24T19:46:07.033 回答
0

build.gradle在更改了一些插件和依赖项 后,我曾两次遇到此问题。

只需关闭并再次打开 Android Studio 即可为我修复它(版本 2.1.2 和 2.2)。

于 2016-08-25T23:40:04.787 回答
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'
}
于 2017-03-24T20:12:41.623 回答
-2

只需放置对我有用的解决方案,如果您是第一次设置环境,应该尝试一下:

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

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

于 2015-04-02T05:10:21.757 回答