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

Android项目新增模块引入Jsoup后出现NoClassDefFoundError问题求助

解决Jsoup类找不到的问题

看起来你遇到了典型的依赖未正确加载导致的NoClassDefFoundError,我来分享几个常用的排查和解决办法:

1. 先确认依赖同步与缓存清理

首先确保你的依赖确实被正确引入了:

  • 检查模块级的build.gradle(或build.gradle.kts)里的implementation 'org.jsoup:jsoup:1.10.2'是否写在dependencies块内,且位置正确(不要写到根项目的build.gradle里)。
  • 执行同步操作:点击Android Studio右上角的「Sync Project with Gradle Files」按钮,或者在终端运行:
    ./gradlew clean build --refresh-dependencies
    
  • 还可以尝试清理AS缓存:File → Invalidate Caches...,勾选「Clear file system cache and local history」后重启IDE。

2. 检查多Dex配置

如果你的项目方法数较多(超过65536),需要开启多Dex才能确保所有依赖类被正确打包:
在模块级build.gradle中添加配置:

android {
    defaultConfig {
        multiDexEnabled true
    }
}

dependencies {
    // 如果你用的是AndroidX,替换为androidx.multidex:multidex:2.0.1
    implementation 'com.android.support:multidex:1.0.3'
}

然后修改你的Application类:

  • 要么让自定义Application继承MultiDexApplication
  • 要么在attachBaseContext方法中手动初始化:
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
    

3. 更新Jsoup版本

你使用的1.10.2是比较老旧的版本,可能和当前的Android Gradle Plugin(AGP)版本存在兼容性问题,建议升级到最新稳定版:

implementation 'org.jsoup:jsoup:1.17.2'

更新后重新同步项目再尝试运行。

4. 检查混淆规则(如果开启了ProGuard/R8)

如果你的项目启用了代码混淆,需要避免Jsoup的类被混淆移除,在proguard-rules.pro中添加:

-keep class org.jsoup.** { *; }
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepnames class org.jsoup.** { *; }

验证步骤

完成上述操作后,切换到Project视图,查看External Libraries下是否出现org.jsoup:jsoup:x.x.x的依赖,如果存在说明引入成功,此时重新运行应用应该就能解决类找不到的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:44:48