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

升级Robolectric后出现Unsupported class file major version 59报错如何解决

Robolectric 4.6.1版本升级编译报错修复方案

Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 59

该报错的核心原因是:类文件主版本号59对应Java 15编译生成的类,你当前项目使用的编译JDK版本低于15,无法解析该版本的类文件。Robolectric 4.6.1传递依赖的org.bouncycastle:bcprov-jdk15on:1.68是基于Java 15编译的,因此触发了兼容性问题。

可选修复方案如下:

  • 方案1:升级测试环境JDK版本
    仅调整测试环节使用的JDK版本到15及以上即可,无需修改生产环境的编译JDK版本。Gradle项目可在build.gradle中添加如下配置:
    test {
        javaVersion = JavaVersion.VERSION_15
    }
    
    如果使用JDK 17及更高版本,对应修改VERSION_X的版本号即可。
  • 方案2:强制降级bouncycastle依赖版本
    不想升级JDK的话,可以强制覆盖Robolectric传递的高版本bouncycastle依赖,改用兼容低版本JDK的1.67版本。在build.gradle的dependencies配置块前添加如下规则:
    configurations.all {
        resolutionStrategy.force "org.bouncycastle:bcprov-jdk15on:1.67"
    }
    
    1.67版本的bcprov包基于Java 11编译,可兼容绝大多数常用的JDK版本。
  • 方案3:升级Robolectric到更高版本
    该兼容性问题已在Robolectric 4.7及以上版本官方修复,直接将依赖版本升级到org.robolectric:robolectric:4.7或更高稳定版即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:57:00