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

使用两个模块依赖时出现Class not found on path: DexPathList异常求助

解决DexPathList下的ClassNotFoundException问题

我之前也踩过这个坑!这种ClassNotFoundException关联DexPathList的问题,大多出在多模块依赖的打包、Dex配置或者构建缓存上,给你几个亲测有效的解决办法:

  • 检查模块依赖的引用正确性
    如果你是主模块依赖其他包含SplScreen类的模块,一定要确认依赖方式是正确的:在主模块的build.gradle里用implementation project(':your-target-module')(或api,根据你的依赖需求),而不是只手动添加jar包或者写错了模块名称。另外,要保证SplScreen类是public访问权限,没有被模块的构建配置排除打包。

  • 开启Multidex支持(针对方法数超限场景)
    当应用总方法数超过65536时,单Dex装不下所有类就会出现这种找不到类的情况。开启步骤如下:

    1. 在app模块的build.gradle中配置:
      android {
          defaultConfig {
              multiDexEnabled true
          }
      }
      
      dependencies {
          // 如果你用的是AndroidX,换成androidx.multidex:multidex:2.0.1
          implementation 'com.android.support:multidex:1.0.3'
      }
      
    2. 自定义Application类继承MultiDexApplication,或者在attachBaseContext方法中手动初始化:
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
      
  • 清理构建缓存并重新编译
    很多时候是旧的构建缓存导致类没有被正确打包,执行以下操作:

    • 点击Android Studio顶部菜单栏的Build > Clean Project
    • 接着执行Build > Rebuild Project
    • 也可以手动删除项目根目录的.gradle文件夹、各模块下的build文件夹,再点击File > Sync Project with Gradle Files重新同步构建。
  • 检查混淆规则是否误删类
    如果你的应用开启了代码混淆,要确保SplScreen类没有被混淆工具移除。在proguard-rules.pro中添加规则:

    -keep class mypackage.SplScreen { *; }
    
  • 验证Dex文件是否包含目标类
    可以用Android SDK自带的dexdump工具检查apk里的dex文件,确认SplScreen是否被打包进去:

    dexdump -d /path/to/your/app.apk/classes.dex | grep "SplScreen"
    

    如果搜索不到结果,说明该类根本没被打包进apk,需要回头检查模块的sourceSets配置,是否不小心排除了该类所在的目录。

内容的提问来源于stack exchange,提问作者amresh thakur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:21:30