(补充)Direct local .aar file dependencies are not supported when building an AAR

124 阅读1分钟

关于Direct local .aar file dependencies are not supported when building an AAR错误,已经有人提出解决办法了,实测能成功

参考文章:关于Direct local .aar file dependencies are not supported when building an AAR错误

作者:Activity爱可踢微踢

本篇文章主要是对该文章的补充,在KTS (Kotlin DSL)下如何使用

# 测试环境
Gradle: 7.3.3
  1. 在你的根目录下创建 libs,并放入 aar 包,参考上面这篇文章
  2. settings.gradle.kts中添加代码:
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven { setUrl("https://jitpack.io") }
        gradlePluginPortal()
        google()
        mavenCentral()

        flatDir {
            // 指向包含 AAR 文件的目录
            dirs(getLibsSubDirs())
        }
    }
}

// 在这个脚本中定义一个方法来获取 libs 目录下的所有子目录
fun getLibsSubDirs(): List<File> {
    val dirs = mutableListOf<File>()
    file("libs").listFiles()?.filter { it.isDirectory }?.forEach { dirs.add(it) }
    return dirs
}
  1. 在你的子模块(需要引入aar的模块中)添加以下代码:(这里以 common 为例)
# common/build.gradle.kts

api(linkedMapOf("name" to "你的aar包名称","ext" to "aar"))

对于 jar 包还是和以前一样直接放 common 模块的 libs 下即可,代码如下:

# common/build.gradle.kts

api(files("libs/你的jar包名称.jar"))
  1. 在你的主模块下引入子模块即可,这里以 app 模块为例:
# app/build.gradle.kts

implementation(project(":common"))