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

Kotlin版MainActivity用Java写Robolectric测试遇资源错误,是否可行?

可以用Java编写测试!问题出在代码细节上

别担心,完全可以用Java编写Robolectric测试来验证你的Kotlin版MainActivity。你遇到的android.content.res.Resources$NotFoundException错误和语言无关,只是测试代码里的一个小疏漏:

你在Java测试代码里直接调用了setupActivity(MainActivity.class),但这个方法是Robolectric类的静态方法,Java里必须明确加上Robolectric.前缀才能正确调用。而Kotlin因为支持顶层函数导入或扩展机制,所以可以直接调用而不报错。

修正后的Java测试代码

@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class)
public class MyActivityTest {
    @Before
    public void setup() {
        // 补上Robolectric.前缀即可
        Robolectric.setupActivity(MainActivity.class);
    }
}

如果修正后还是报错,可以检查这几点:

  • 确认测试模块的Robolectric依赖版本和Kotlin测试用的完全一致
  • 检查BuildConfig的导入路径,确保是你app模块的BuildConfig而非其他模块
  • 执行一次清理构建(Clean Project + Rebuild Project),有时候资源缓存会导致这类找不到资源的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:40:12