You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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也要对应配置:
    android {
        namespace "com.yourpackage.name.test"
    }
    
    保证测试代码中R类的命名空间和应用模块一致。

内容的提问来源于stack exchange,提问作者Filnik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:02:38