AGP 8.5.1与Gradle 8.9环境下,如何无flatDirs添加*.aar至Android项目?
无需flatDirs添加本地AAR文件到Android项目(适配AGP 8.5.1 + Gradle 8.9)
以下是三种可行的方案,均无需依赖flatDirs仓库:
方案一:直接文件依赖(最简方案)
把AAR文件放到目标模块的libs目录下,直接通过文件路径引入:
Kotlin DSL(build.gradle.kts)
dependencies { // 引入单个AAR文件 implementation(files("libs/your-target-library.aar")) // 批量引入libs目录下所有AAR文件 implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar")))) }
Groovy DSL(build.gradle)
dependencies { // 引入单个AAR文件 implementation files('libs/your-target-library.aar') // 批量引入libs目录下所有AAR文件 implementation fileTree(dir: 'libs', include: ['*.aar']) }
注意:如果AAR本身包含第三方依赖,你需要手动在dependencies块中添加这些依赖,否则会出现类缺失的编译错误。
方案二:发布到本地Maven仓库(推荐,支持依赖传递)
这种方式能保留AAR的依赖信息,无需手动处理依赖,版本管理更规范:
- 配置本地仓库地址
在项目根目录的build.gradle.kts(或build.gradle)中添加本地仓库:
// 根build.gradle.kts repositories { // 可选:使用系统默认的本地Maven仓库 mavenLocal() // 推荐:使用项目内的专属本地仓库,避免全局仓库干扰 maven { url = uri("${rootProject.projectDir}/local-maven-repo") } }
- 添加发布任务
在存放AAR的模块(或单独创建一个模块)的build.gradle.kts中配置Maven发布任务:
plugins { id("com.android.library") id("maven-publish") } android { // 你的Android库配置(compileSdk、defaultConfig等) } afterEvaluate { publishing { publications { create<MavenPublication>("aarPublish") { from(components["release"]) // 选择构建变体,如debug或release groupId = "com.yourteam" // 自定义组ID artifactId = "your-library" // 自定义库ID version = "1.0.0" // 自定义版本号 } } repositories { maven { url = uri("${rootProject.projectDir}/local-maven-repo") // 与根配置的仓库地址一致 } } } }
- 执行发布任务
在终端运行命令,将AAR发布到本地仓库:
./gradlew publish
- 引入依赖
在需要使用AAR的模块中,像引入远程依赖一样添加:
dependencies { implementation("com.yourteam:your-library:1.0.0") }
方案三:作为Android Library模块导入(适合需修改源码的场景)
如果AAR是你自己开发的库,且能获取对应的源码,可直接将其作为模块导入项目:
- 打开Android Studio,选择
File > New > Import Module - 选择AAR文件所在的目录(或直接选中AAR文件),完成模块导入
- 在主模块的
build.gradle.kts中添加模块依赖:
dependencies { implementation(project(":your-imported-library-module")) }
这种方式下,Gradle会自动处理所有依赖传递,还能直接修改库的源码。
内容的提问来源于stack exchange,提问作者Martin Zeitler
相关产品推荐
相关产品推荐

