Подтвердить что ты не робот

Android Studio не может решить org.junit

Я использую тесты JUnit в Android Studio 1.2.2. Тесты выполняются без проблем. Единственное, что меня озадачивает, это то, что 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++;
    }
}
4b9b3361

Ответ 1

Попробуйте File -> Invalidate Caches / Restart.

Ответ 2

Поместите это в свой файл gradle:

 testCompile 'junit:junit:4.12'

Ответ 3

Если ни одно из указанных выше не работает, возможно, ваши тестовые классы находятся в неправильном каталоге.

Я столкнулся с этой проблемой, потому что мои текстовые классы находились в директории /main/java вместо /test, где они должны быть...

Короче:

Убедитесь, что ваши тестовые классы находятся в каталоге /test!

Ответ 4

У меня была эта проблема, и оказалось, что это просто из-за того, что я оставил свой вариант сборки на "release". После того, как я изменил его обратно на "отладку", Android Studio выполнила сборку, и когда она закончила, красные ошибки аннотаций junit исчезли. Рис установки варианта сборки в андроид студии

Ответ 5

Если вы заново установили андроид-студию, помните, что по умолчанию она не использует ваши системы JDK (структура проекта → местоположение SDK → местоположение jdk).

Ответ 6

Я решил это путем комбинации некоторых ответов и некоторых изменений:

1. Убедитесь, что вы установили prepare targetSdkVersion, compileSdkVersion и buildToolsVersion.

2.Я использовал последнюю Android Gradle Plugin Version Gradle Version.

3. Добавьте несколько строк в build.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"
        }
    }
}