导入androidx.test.ext.junit.rules.ActivityScenarioRule提示Unresolved reference: ext如何解决
解决方案
根因说明
Unresolved reference: ext报错是因为ActivityScenarioRule所属的androidx.test.ext.junit依赖没有对UI测试目录(androidTest)生效,同时项目依赖存在冲突导致类加载异常。
具体修改步骤
- 第一步:删除过时的冲突依赖
你当前build.gradle的dependencies块中同时引入了Android Support库和AndroidX的Espresso依赖,二者完全不兼容,先删除以下两行:
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'
- 第二步:补充UI测试目录的ext.junit依赖
你当前只给本地单元测试目录(test)声明了androidx.test.ext:junit-ktx依赖,Espresso UI测试属于androidTest目录,需要新增对应作用域的依赖:
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.3'
- 第三步:同步依赖并清理构建
修改完成后点击Android Studio右上角的「Sync Now」同步Gradle配置,之后执行Build -> Clean Project再Rebuild Project即可消除报错。
可选优化(非必须)
如果不需要尝鲜版本,可以把alpha版本的测试依赖替换为稳定版,避免潜在兼容性问题:
// 替换前 androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0-alpha03' androidTestImplementation 'androidx.test:rules:1.4.1-alpha03' // 替换后 androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation 'androidx.test:rules:1.4.0'
内容的提问来源于stack exchange,提问作者thebluepandabear
相关产品推荐
相关产品推荐

