【发布时间】:2021-02-24 18:12:21
【问题描述】:
我有一个多项目设置。考虑两个独立的应用 AppA 和 AppB。 AppA 有两个库模块 modA 和 modB。 modA 通过 gradle API 依赖于 modB。
考虑 modA build.gradle 文件
dependencies {
api project(":mobB")
}
modA 有一个文件 ModASample.kt,看起来像
class ModASample{
fun modASample(){
println("modASample")
}
}
modB 有一个文件 ModBSample.kt,看起来像
class ModBSample{
fun modBSample(){
println("modBSample")
}
}
AppA build.gradle 文件
dependencies {
implementation project(":modA")
}
来自 appA 中的一个类 AppASample.kt
class AppASample{
fun access(){
val modA = ModASample() //accessible
val modB = ModBSample() //accessible
}
}
ModASample 和 ModBSamle 都可以访问,这也是预期的,因为 modB 通过 api 访问在 modA 中使用。
当我尝试提取modA 的aar 并尝试在AppB 中使用此aar 时,问题出现了。
AppB 有build.gradle 文件,看起来像这样
dependencies {
implementation project(":modA")
}
这一次,modA 的 aar 已准备好并作为单独的模块添加。
来自班级AppBSample.kt
class AppASample{
fun access(){
val modA = ModASample() //accessible
val modB = ModBSample() // NOT ACCESSIBLE
}
}
任何人都可以提供一些见解为什么会发生这种情况。我期待 modB 可以访问,但如果使用直接 aar,情况并非如此。
任何建议将不胜感激。
【问题讨论】:
-
你把这个 aar 放在 modB 的什么位置?
-
您后续问题的上下文不是很清楚。能否请您添加它。
-
我查看了下面的一些 cmets,您似乎想将 modB 作为 modA 的依赖项包含在内,有点像改造如何引入 okhttp,这是一个公平的说法吗?
标签: android android-studio gradle aar