Android Espresso testing "Не удается разрешить символ" InstrumentationRegistry ''

Я пытаюсь импортировать

 import android.support.test.InstrumentationRegistry;

мой файл build.gradle

androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'

в конфигурации по умолчанию:

defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

Есть ли библиотека, которую я здесь отсутствует? Я пытаюсь импортировать InstrumentationRegistry, но он не распознает его!

Ответ 1

Проверьте, какой тест вы используете.

InstrumentationRegistry используется для инструментальных тестов, которые используют эмулятор или устройство, и они помещаются в src/androidTest и используют config androidTestCompile.
Если вы используете локальные модульные тесты для JVM из папки src/test, вам следует использовать config testCompile

testImplementation 'com.android.support.test:runner:1.0.2'

После этого вы можете импортировать InstrumentationRegistry, но вы получите другие ошибки во время выполнения.

Ответ 2

попробуйте

компилировать 'com.android.support.test: runner: 0.2'

вместо

testCompile 'com.android.support.test: runner: 0.2'

Ответ 3

кажется, что com.android.support.test недавно был исключен из какого-то другого пакета (не знаю, какой именно), что также привело к тому, что android.support.test.InstrumentationRegistry был неизвестен; не исключая его из com.android.support.test:runner исправил проблему для меня.

androidTestImplementation ("com.android.support.test:runner:1.0.2") {
    // exclude group: "com.android.support.test"
    exclude group: "com.android.support"
}

в основном, androidTestImplementation должен содержать com.android.support.test один раз.