androidTest: Cannot resolve symbol InstrumentationRegistry

android studio上で、InstrumentationRegistryやAndroidJUnit4などの名前解決ができず、赤字になってしまいました。

赤字の上にマウスをのせると、

Cannot resolve symbol 'InstrumentationRegistry'

Cannot resolve symbol 'AndroidJUnit4'

と、吹き出し表示されます。

このアプリの全てのandroidTestクラスでこのような状態です。

だめもとで、androidTestを実行したり、テストクラスを指定して実行したりしましたが、Runメッセージ領域に、

onError: commandError=true message=INSTRUMENTATION_FAILED

が表示されて、テスト実行できませんでした。

ところが、ターミナルで、./gradlew app:connectedAndroidTest を実行すると、問題なくテスト実行し、テスト結果のhtmlも作成されました。

なお、app/build.gradle の dependenciesで、androidx.test:runner他は、すでに指定済みです。

dependencies {
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test:rules:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'Code language: JavaScript (javascript)

行き詰まってしまいました。

そこで、プロジェクトを新規作成し、問題のbuild.gradleから、1行づつコピーしながら、どこで、InstrumentationRegistry が赤字になるかを調べました。

原因は、testBuildTypeでした。

android {
    testBuildType "xxxx"Code language: JavaScript (javascript)

app/build.gradleのbuildConfigを編集して、xxxx と debug の内容を同じにしてみましたが、解決できません。

あきらめて、testBuildTypeを削除しました。InstrumentationRegistryが黒字表示になり、androidTestも実行できました。

タイトルとURLをコピーしました