SDK升级至33后UI测试中资源ID无法识别问题求助
解决SDK 33升级后UI测试资源ID未解析问题
检查测试模块的Gradle配置
- 确认UI测试模块的
build.gradle里,资源和代码目录配置正确:android { sourceSets { androidTest { res.srcDirs = ['src/androidTest/res'] java.srcDirs = ['src/androidTest/java'] } } } - 同步更新测试依赖到SDK 33适配版本:
androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
清理重建项目
- 执行Gradle清理命令:
./gradlew clean(Windows环境用gradlew clean) - 重启IDE后,执行
./gradlew assembleAndroidTest重新编译测试模块 - 手动触发Gradle同步:点击IDE右上角的「Sync Project with Gradle Files」按钮
修正资源ID的导入路径
- 确保测试代码里导入的是应用模块的R类,而非测试模块的R类:
import com.yourpackage.name.R // 正确 // 不要用 import com.yourpackage.name.test.R // 错误 - 若IDE自动导入了错误路径,手动替换为应用模块的R类引用。
临时关闭资源压缩排查
- 在应用模块的
build.gradle里临时关闭资源压缩,排查是否是压缩规则误删了测试资源:
问题解决后,再重新配置资源压缩规则,确保测试用到的资源不被移除。android { buildTypes { debug { shrinkResources false minifyEnabled false } } }
核对命名空间配置(AGP 7.0+)
- 如果用的是Android Gradle Plugin 7.0及以上版本,确认应用模块的
build.gradle设置了正确的namespace:android { namespace "com.yourpackage.name" } - 测试模块的
build.gradle也要对应配置:
保证测试代码中R类的命名空间和应用模块一致。android { namespace "com.yourpackage.name.test" }
内容的提问来源于stack exchange,提问作者Filnik
相关产品推荐
相关产品推荐

