web-dev-qa-db-de.com

Android Studio kann org.junit nicht auflösen

Ich verwende JUnit-Tests in Android Studio 1.2.2. Die Tests laufen problemlos. Das einzige, was mich verwundert, ist, dass Android Studio das eigentliche org.junit-Paket nicht auflösen kann. Offensichtlich wird das Problem behoben, andernfalls würden die Tests nicht ausgeführt. Der Import und die Anmerkungen sind jedoch in Android Studio rot markiert, wie hier gezeigt. Ist das ein Fehler in Android Studio? Ich habe versucht, die App neu zu erstellen und Android Studio neu zu starten, aber das Problem wird dadurch nicht behoben.

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++;
    }
}
26
AndroidDev

Versuchen Sie File -> Invalidate Caches / Restart.

32
ligi

Fügen Sie dies in Ihre Gradle-Datei ein:

 testCompile 'junit:junit:4.12'
18
rupesh jain

Wenn keine der oben genannten Aufgaben funktioniert , könnten sich Ihre Testklassen im falschen Verzeichnis befinden.

Ich bin auf dieses Problem gestoßen, da sich meine Textklassen im /main/Java-Verzeichnis befanden und nicht im /test-Verzeichnis, wo sie sich befinden sollten.

Zusamenfassend:

Stellen Sie sicher, dass sich Ihre Testklassen im Verzeichnis /test befinden!

9
Sakiboy

Ich hatte dieses Problem und es stellte sich heraus, dass es nur daran lag, dass ich meine Build-Variante auf "release" eingestellt hatte. Nachdem ich es wieder in "debug" geändert hatte, hat Android Studio einen Build durchgeführt und als er fertig war, verschwanden die roten Fehler in den Junit-Annotationen. Bild der Buildvarianteneinstellung in Android studio

5
user3064141

Ich habe es durch die Kombination einiger Antworten und einiger Änderungen gelöst:

1.Stellen Sie sicher, dass Prepare targetSdkVersion, compileSdkVersion und buildToolsVersion eingestellt sind.

2.Ich habe das letzte Android Gradle Plugin Version und Gradle Version.

3.Füge einige Zeilen zu buil.gradle auf App-Ebene hinzu (ich markiere sie mit '\ *'):

    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 auf Projektebene sieht folgendermaßen aus:

    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"
        }
    }
}
0
Zima

Wenn Sie Android Studio neu installiert haben, verwenden Sie das JDK Ihres Systems nicht (Projektstruktur -> SDK-Speicherort -> JDK-Speicherort).

0
M.Mavini