关于Direct local .aar file dependencies are not supported when building an AAR错误,已经有人提出解决办法了,实测能成功
参考文章:关于Direct local .aar file dependencies are not supported when building an AAR错误
本篇文章主要是对该文章的补充,在KTS (Kotlin DSL)下如何使用
# 测试环境
Gradle: 7.3.3
- 在你的根目录下创建
libs,并放入aar包,参考上面这篇文章 - 在
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
}
- 在你的子模块(需要引入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"))
- 在你的主模块下引入子模块即可,这里以
app模块为例:
# app/build.gradle.kts
implementation(project(":common"))