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

Jacoco nodeps依赖下ClassNotFound com.vladium.emma.rt.RT问题排查

问题排查结果

核心原因

  • 类归属错误:你尝试加载的com.vladium.emma.rt.RT是老旧覆盖率工具Emma的专属类,Jacoco作为Emma的官方替代产品,整个代码库完全没有这个命名空间下的类,自然会抛出ClassNotFoundException。如果是从Emma迁移到Jacoco的旧项目,所有反射调用Emma类的代码都要全部替换。
  • 依赖范围不匹配:当前你配置的jacocoAnt、根目录构建脚本的classpath Jacoco依赖,都属于Gradle构建阶段的工具类路径,只会在执行编译、覆盖率报告生成等构建任务时生效,不会被打包到androidTest测试包的运行时类路径中,就算是Jacoco自身的运行时类,没有额外配置也会找不到。
  • 版本冲突:根目录声明的Jacoco版本是0.8.2,subproject.main模块的jacocoAnt强制指定了0.8.1,版本不一致会额外增加类兼容性问题的概率。

修复步骤

  1. 删掉所有反射调用Emma类的代码,如果是要在运行时获取Jacoco覆盖率数据,改用Jacoco对应API,目标类为org.jacoco.agent.rt.RT
  2. 统一所有Jacoco依赖版本,把subproject.main模块的jacocoAnt依赖版本改为和根目录一致的0.8.2
  3. 如果确实需要在androidTest运行时调用Jacoco API,给subproject.main模块添加如下依赖,将Jacoco运行时打包到测试包中:
dependencies {
    androidTestImplementation "org.jacoco:org.jacoco.agent:$jacocoVersion:runtime"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 08:36:02