我正在模块化我的单模块应用程序,但我遇到了一个我无法处理的问题。
我有 2 个模块,我们称它们为:app(com.android.application 模块)和:library(com.android.library)。
:library 模块依赖于另一个 android 库(用于播放器的 brightcove sdk),它的 build.gradle 看起来像:
repositories {
maven { url 'http://repo.brightcove.com/releases' }
}
dependencies {
...
implementation "com.brightcove.player:exoplayer2:6.3.1"
}
我的 :app 模块只依赖于 :library 模块
dependencies {
implementation (':library')
}
但问题是在同步期间 IDE 向我提示
Error:Unable to resolve dependency for ':app@debug/compileClasspath':
Could not resolve com.brightcove.player:exoplayer2:6.3.1.
它只有在将相同的存储库添加到 :app 模块后才能得到解决。
但我真的不想从 ':app' 中的 ':library' 复制我所有 aar 依赖项的存储库,也不想将此“存储库”存储在顶级构建文件中。
在多模块android应用程序中处理这种情况的正确方法是什么?
最佳答案
当您的应用程序想要访问您的库中使用的第三方时,您也应该将其依赖项添加到您的应用程序 build.gradle 中。因为它们之间没有像链一样的关系,第三方仅在您的库中可见。所以,你应该在 app build.gradle 中添加这个:
dependencies {
implementation "com.brightcove.player:exoplayer2:6.3.1"
}
关于android - 如何摆脱应用程序模块中的模块特定库存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52439486/