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

引入AAR库运行报java.lang.NoClassDefFoundError错误如何解决?

根本原因

本地AAR文件本身不包含其依赖声明信息,你通过implementation files('libs/androidLibrary-release.aar')方式直接依赖本地AAR时,Gradle不会自动处理AAR的传递依赖,即便你在AAR的构建脚本中用了api声明joda-time依赖也不会生效。
你之前将AAR作为模块导入时,Gradle会直接读取AAR模块的build.gradle配置,自动拉取对应依赖,所以运行正常。

解决方案

  • 方案1(快速修复):直接在主应用的build.gradle依赖块中手动添加缺失的依赖即可:
implementation 'joda-time:joda-time:2.10.5'

添加后重新构建,joda-time的类会直接打包进主APK,即可解决类找不到的崩溃问题。

  • 方案2(一劳永逸处理传递依赖):将AAR发布到本地Maven仓库,发布时会自动生成包含依赖信息的pom文件,主应用依赖本地Maven中的AAR时,Gradle会自动拉取所有传递依赖,不需要手动逐个添加。
  • 方案3(恢复AAR模块导入):Android Studio Arctic Fox版本并没有移除AAR模块导入能力,只是入口调整,你可以右键项目根目录选择「New -> Module -> Import .JAR/.AAR Package」,选择本地AAR文件即可完成模块导入,导入后和之前版本的效果完全一致,会自动处理AAR的依赖。

验证方式

构建完成后可以通过Android Studio顶部菜单栏的「Build -> Analyze APK」选择生成的APK文件,查看dex文件中是否存在org.joda.time相关类,确认依赖是否正确打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 17:51:02