升级Android构建工具至4.7.3后测试中Raw资源无法解析
解决AGP 4.7.3下Android测试资源无法解析的问题
问题原因
AGP 4.x版本调整了测试资源的R类生成逻辑,不再自动在主应用包名后追加.test后缀,测试资源对应的R类直接生成在主包名下,导致旧的com.santaev.app.test.R导入路径失效;同时缓存或配置异常也可能导致资源未正确生成。
解决步骤
- 替换R类导入语句:将androidTest代码中所有
import com.santaev.app.test.R替换为import com.santaev.app.R。此时导入的R类是测试源集专属的,不会和主源集的R类冲突。 - 验证测试源集配置:检查Module级
build.gradle的sourceSets配置,确保androidTest的资源路径正确:android { sourceSets { androidTest { res.srcDirs = ['src/androidTest/res'] } } } - 清理缓存并重建项目:执行以下Gradle命令彻底清理缓存后重建测试包:
或在Android Studio中依次点击./gradlew clean assembleDebugAndroidTestBuild -> Clean Project、Build -> Rebuild Project。 - 禁用测试构建的资源压缩:若测试构建类型开启了资源压缩或混淆,会导致测试资源被移除,需在
build.gradle中禁用:android { buildTypes { debug { shrinkResources false minifyEnabled false } androidTest { shrinkResources false minifyEnabled false } } } - 检查资源文件名规范:确保
src/androidTest/res/raw下的资源文件名符合Android要求(仅允许小写字母、下划线、数字,不能有大写或特殊字符)。
内容的提问来源于stack exchange,提问作者Pavel Santaev
相关产品推荐
相关产品推荐

