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

如何生成包含指定外部依赖的Android库AAR文件?

解决Android库AAR打包外部依赖的问题

你的问题根源在于用implementation声明的依赖不会被打包进AAR,也不会自动传递给引用该库的项目——implementation仅用于库自身编译时的依赖隔离,外部项目无法感知这些依赖,因此会出现类找不到的崩溃。要把这两个依赖打包进AAR,推荐使用以下方案:

方案一:使用Fat-AAR插件(推荐)

这是Android生态中打包"胖AAR"(包含外部依赖)的常用方案,能自动处理依赖的合并与打包:

  1. 在项目根目录的build.gradle中添加插件依赖:
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2' // 替换为你当前使用的Gradle插件版本
        classpath 'com.github.kezong:fat-aar:1.3.8' // 插件版本需与Gradle版本兼容,可按需调整
    }
}
  1. 在库模块的build.gradle中应用插件并修改依赖配置:
plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'com.github.kezong.fat-aar'
}

android {
    // 保持你原有的库配置(compileSdk、defaultConfig等)
}

dependencies {
    // 将原来的implementation替换为embed,标记该依赖需要打包进AAR
    embed("org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4")
    embed("com.squareup.okhttp3:okhttp:4.10.0")

    // 其他不需要打包的依赖仍可使用implementation/api
}
  1. 重新构建库:执行./gradlew :your-library-module:assembleRelease,生成的AAR会包含这两个依赖的代码。

注意事项

  • 打包后的AAR体积会显著增大,需评估是否接受此代价
  • 如果引用该库的项目也引入了相同依赖,可能出现类重复冲突,此时需要在库或引用项目中通过exclude规则排除重复依赖
  • 确保Fat-AAR插件版本与你的Gradle插件版本兼容,可根据自身Gradle版本调整插件号

方案二:手动引入依赖包(不推荐)

下载这两个依赖的JAR/AAR文件,放到库模块的libs目录下,然后用implementation files('libs/xxx.jar')声明依赖。这种方式虽然能打包进AAR,但需要手动管理依赖的更新和子依赖,极易出错,仅适合特殊场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:31:06