Не удается разрешить символ 'test' в Android Библиотека поддержки - PullRequest
1 голос
/ 28 января 2020

Я только начинаю играть с Android, и у меня возникают проблемы с некоторыми примерами AndroidTest, с которыми я столкнулся. По сути, я получаю сообщение об ошибке Не удается разрешить символ 'test' от Android Studio в операторах импорта для классов InstrumentationRegistry и AndroidJUnit4 моего инструментированного тестового файла:

ExampleInstrumentedTest . java

package com.example.androidtestexample;

import android.content.Context;

import android.support.test.platform.app.InstrumentationRegistry;
import android.support.test.ext.junit.runners.AndroidJUnit4;

import org.junit.Test;
import org.junit.runner.RunWith;

import static org.junit.Assert.*;

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();

        assertEquals("com.example.androidtestexample", appContext.getPackageName());
    }
}

Как следствие, символ AndroidJUnit4 оператора @RunWith также не может быть разрешен, и когда я пытаюсь запустить инструментальный тест, я получаю 'Изменить конфигурацию 'Окно с' классом инструментария не указан '.

Я использую Android Studio 3.5.3, но в этом примере используется' com. android .tools.build: gradle: 2.2. 3' . Приложение gradle.build выглядит следующим образом (мне пришлось добавить операторы aaptOptions, как было предложено здесь , чтобы получить минимальный воспроизводимый пример работы):

build.gradle (Модуль : app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "24.0.2"
    defaultConfig {
        applicationId "com.example.androidtestexample"
        minSdkVersion 22
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:25.0.1'
    testCompile 'junit:junit:4.12'
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
}

Как предложено в в этом вопросе , я дважды проверил, что был выбран вариант отладочной сборки и что исходный файл тестирования инструментария находился в * Папка 1025 * src / androidTest / java / .

Я понимаю, что этот пример довольно устарел, и из другого ответа на вышеупомянутый вопрос и из этой страницы , что пакет android.support.test устарел, и вместо него следует использовать AndroidX. Однако с этой страницы я также понимаю, что по-прежнему можно использовать библиотеку поддержки Android для исторических артефактов, поэтому мой вопрос:

Есть ли способ исправить эту проблему и запустить такие старые примеры с пакетом android.support.test без необходимости их миграции на AndroidX?

...