Android Studio无法解析org.junit

时间:2015-07-15 15:55:47

标签: android android-studio junit

我在Android Studio 1.2.2中使用JUnit测试。测试没有问题。唯一令我困惑的是Android Studio无法解析实际的org.junit包。显然它确实解决了它,否则测试就不会运行。但是导入和注释在Android Studio中标记为红色,如此处所示。这是Android Studio中的错误吗?我尝试重建应用并重新启动Android Studio,但这并没有解决问题。

import org.junit.Test;

import static org.junit.Assert.*; // cannot resolve symbol 'junit'

public class CanadaTest
{
    @Test
    public void testCountryName() throws Exception
    {
        int x = 0;
        x++;
    }
}

7 个答案:

答案 0 :(得分:18)

将它放在您的gradle文件中:

 testCompile 'junit:junit:4.12'

答案 1 :(得分:10)

如果以上都不是,则可能是您的测试类位于错误的目录中。

我遇到了这个问题,因为我的文本类位于/main/java目录而不是/test目录中,而它们应该是......

简而言之:

确保您的测试类位于/test目录中!

答案 2 :(得分:5)

我遇到了这个问题,结果发现这只是因为我将构建版本设置为“release”。一旦我将其更改回“debug”,Android Studio就会进行构建,当它完成时,junit注释上的红色错误消失了。 pic of build variant setting in android studio

答案 3 :(得分:1)

可能在你的 gradle 文件中有这样的内容:

configurations {
    debugImplementation.exclude group: "junit", module: "junit"
}

删除一切后就可以了。

答案 4 :(得分:0)

如果您重新安装android studio,请记住默认情况下它不使用您的系统JDK(项目结构 - > SDK位置 - > jdk位置)。

答案 5 :(得分:0)

我结合了一些答案和一些改动来重新装扮它:

1。确保设置准备targetSdkVersioncompileSdkVersionbuildToolsVersion

2。我使用了最后的Android Gradle Plugin VersionGradle Version

3。在应用级别上将一些行添加到buil.gradle(我用'\ *'标记它们):

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    defaultConfig {
        applicationId "com.zima.testapp"
        minSdkVersion 22
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"   //*
        apply plugin: 'maven'   //*
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    dependencies {
        testImplementation 'junit:junit:4.12'  //*
        implementation 'junit:junit:4.12'   //*
        androidTestImplementation 'com.android.support:support-annotations:28.0.0'  //*
        androidTestImplementation 'com.android.support.test:runner:1.0.2'  //*
        androidTestImplementation 'com.android.support.test:rules:1.0.2'  //*
        implementation fileTree(dir: 'libs', include: ['*.jar'])   //*
        implementation fileTree(dir: 'libs', include: 'Parse-*.jar')   //*
    }
}

4.build.gradle在项目级别上是这样的:

    buildscript {
     repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        apply plugin: 'java'  //*
         }
}
allprojects {
    repositories {
        jcenter()
        google()
        maven {
            url "https://jitpack.io"
        }
    }
}

答案 6 :(得分:0)

问题
在工具测试(androidTest)中找不到 org.junit。 *的类和注释。这些类可以在junit测试(测试)中找到。

解决方案
Build Variant Release 切换到 Debug