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

如何在Android Studio中为Android Library添加androidTest资源

解决Android Library中androidTest资源无法访问的问题

我来帮你搞定这个Android Library里androidTest资源访问的问题,结合你给出的环境(Android Studio 3.1.2、Gradle 4.4、minSdk 19、targetSdk 27),一步步来解决:

1. 捋顺Gradle的androidTest sourceSet配置

你之前加的配置方向是对的,但可能因为Library默认配置的覆盖或者细节问题没生效。你可以在模块级的build.gradle(不是项目根目录的那个)里简化成下面这样:

android {
    // 保留你原本的compileSdk、minSdk等配置...

    sourceSets {
        androidTest {
            java.srcDir 'src/androidTest/java'
            res.srcDir 'src/androidTest/res'
            // 如果需要测试assets,也可以加上这行
            // assets.srcDir 'src/androidTest/assets'
        }
    }
}

配置完之后,一定要点Android Studio右上角的「Sync Project with Gradle Files」按钮——这步比单纯Clean/Rebuild重要多了,能让Gradle重新识别你的sourceSet配置。

2. 让Android Studio认出来测试资源目录

如果你手动建了src/androidTest/res/raw但AS没把它当测试资源目录,可以手动标记:

  • 在Project视图里找到src/androidTest/res目录
  • 右键点它 → 选「Mark Directory as」→ 「Test Resources Root」
    这样AS就会把这个目录下的资源编译到测试专用的R类里了。

3. 别引用错R类!

你提到其他项目里有my.app.namespace.test.R,这就是测试资源对应的R类!在你的androidTest代码里,必须引用这个测试专用的R类,而不是主模块的my.app.namespace.R:

// 错误:用了主模块的R,肯定找不到测试资源
import my.app.namespace.R;

// 正确:用测试模块的R,才能访问raw下的image
import my.app.namespace.test.R;

4. 最后验证一下

做完上面几步,按这个顺序操作确保生效:

  1. 先点「Build → Clean Project」清掉旧缓存
  2. 再点「Build → Rebuild Project」重新编译
  3. 跑一下你的测试代码,看看能不能正常拿到R.raw.image

要是还不行,再查这几点

  • 确认测试类是放在src/androidTest/java下的,不是test/java——后者是本地单元测试,根本访问不了Android资源
  • 检查image.jpg的文件名,不能有大写字母、空格或者特殊字符,得符合Android资源命名规则
  • 看看AS的「Build Output」面板,有没有资源编译的错误提示,比如资源重复、命名不合法之类的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:48:42