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

求支持Android Gradle Plugin 8.5.2+的fat-aar插件及异常解决方案

支持AGP 8.5.2+的fat-aar插件及ClassNotFoundException解决方案

是否有支持AGP 8.5.2及以上的fat-aar插件?

目前主流的fat-aar-android(最新1.4.1版本)官方仅支持到AGP 8.5.0,暂未发布适配8.5.2+的正式版本。不过可以通过临时适配方案让现有插件兼容,或者选择AGP自带的替代功能。

针对java.lang.ClassNotFoundException: androidx.work.CoroutineWorker的解决方案

1. 临时适配现有fat-aar插件到AGP 8.5.2

  • 强制对齐AGP版本:在项目根目录的build.gradle中,排除插件自带的旧AGP依赖,手动指定当前使用的8.5.2版本:
buildscript {
    dependencies {
        classpath("com.github.aasitnikov:fat-aar-android:1.4.1") {
            exclude group: 'com.android.tools.build', module: 'gradle'
        }
        classpath 'com.android.tools.build:gradle:8.5.2'
    }
}
  • 刷新依赖并清理缓存:执行命令
./gradlew clean build --refresh-dependencies

2. 修复CoroutineWorker类缺失问题

  • 检查fat-aar的embed配置:确保包含androidx.work:work-runtime-ktx的模块或依赖被正确嵌入。如果是模块依赖,配置如下:
embed project(path: ':your-worker-module', configuration: 'default')

如果是直接依赖,添加:

embed 'androidx.work:work-runtime-ktx:2.8.1' // 替换为你使用的版本
  • 调整依赖可见性:在提供CoroutineWorker的模块中,将依赖声明从implementation改为api,确保依赖能被传递到fat-aar中:
api 'androidx.work:work-runtime-ktx:2.8.1'
  • 添加混淆规则(若开启R8/ProGuard):在proguard-rules.pro中保留相关类:
-keep class androidx.work.CoroutineWorker { *; }
-keep class androidx.work.Worker { *; }

3. 替代方案:使用AGP自带的bundleLibrary功能

AGP 8.0+原生支持将库打包为包含所有依赖的bundle AAR,无需第三方插件:
在你的library模块的build.gradle中添加配置:

android {
    libraryVariants.all { variant ->
        variant.bundleLibrary.enable = true
    }
}

构建后生成的bundleRelease.aar(或对应变体)会包含所有依赖,实现类似fat-aar的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:42:46