Я только начинаю играть с 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?