med*_*vox 5 android gradle transitive-dependency android-studio gradle-dependencies
从版本 3.0.0 开始,Android Gradle 插件允许您将模块的依赖项导出到其他模块。
因此,在我的 android 库模块中,我应该能够使用该依赖项来声明api <dependency declaration>依赖项,并将该依赖项作为导出的传递依赖项访问,在我的主应用程序项目中,我已将我的库模块声明为依赖项。
我还使用静态文件依赖项。
举个例子:
我有一个类NeededEverywhere,它是在它自己的 gradle 模块中定义的everywhere-module。该模块与我的库模块位于同一项目中。
//library module's build.gradle:
dependencies {
api project(':everywhere-module')
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序的 build.gradle(位于不同的 Android Studio 项目中)中,我声明了对库的依赖,但不是everywhere-module. 这应该意味着这everywhere-module是一个导出的传递依赖。
//app project's build.gradle
dependencies {
implementation files("path/to/my/library/file.aar")
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法访问NeededEverywhere我的应用程序中的课程。
我究竟做错了什么?
您直接引用 AAR。
依赖关系信息不在 AAR 中,就像依赖关系信息不在 JAR 中一样。依赖关系信息保存在工件存储库的元数据中,例如 Maven 样式存储库的 POM 文件。
因此,具有库模块的项目需要将其 AAR 发布到工件存储库。这可能是您机器本地的一个(例如,mavenLocal())。然后,需要依赖库模块的项目从存储库而不是通过file(). 然后,Gradle 可以从存储库获取传递依赖信息并使用它。
| 归档时间: |
|
| 查看次数: |
2659 次 |
| 最近记录: |