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

Xwalk运行报NoClassDefFoundError: Ljunit/framework/Assert错误如何解决

问题根因

你当前添加的所有依赖都使用了testImplementation作用域,该配置仅会将依赖引入到测试代码的编译和运行环境中,不会打包到App正式运行(含debug调试运行)的安装包内,因此运行时依然找不到junit.framework.Assert类。

解决方案

可以根据你的需求选择以下任意一种方案:

  • 方案1:调整junit依赖的作用域
    把junit的依赖从testImplementation改为implementation,这样junit类会被打包到安装包内,直接解决类找不到的问题,推荐使用稳定的junit4版本:
    implementation 'junit:junit:4.13.2'
    
    如果你开启了R8/Proguard混淆,需要补充如下混淆规则避免类被移除:
    -keep class junit.framework.** { *; }
    
  • 方案2:替换Crosswalk(XWalk)为正式发布版本
    这个报错本质是你使用的Crosswalk内核版本为测试构建版本,代码中残留了junit断言调用。换用官方正式release版本的Crosswalk依赖,即可从根源避免运行时调用junit相关类,不需要额外引入junit包。
  • 方案3:自定义空实现的Assert类
    如果不想将整个junit包打入安装包,可以在自己的项目代码中创建对应包名的Assert类,补全Crosswalk调用到的方法即可:
    package junit.framework;
    
    public class Assert {
        public static void assertNotNull(Object obj) {
            // 可以根据需求做空实现,或者添加自定义校验逻辑
            if (obj == null) {
                throw new RuntimeException("Assertion failed: object is null");
            }
        }
        // 按报错提示补全所有被调用的Assert方法即可
    }
    

内容的提问来源于stack exchange,提问作者c-an

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:45:01