【问题标题】:Share dependency libraries between modules在模块之间共享依赖库
【发布时间】:2019-02-15 06:34:46
【问题描述】:

我的项目布局如下:

+-- app
|   +-- builds
|   +-- libs
|   +-- src

+-- my-lib
|   +-- builds
|   +-- libs
|   |   +-- lib1.jar

我已经在app 模块中添加了my-lib 为implementation project (':my-lib'),如何在app 模块中使用lib1 类?

【问题讨论】:

    标签: android android-studio gradle dependencies


    【解决方案1】:

    my-lib1 库依赖部分使用api 而不是implementation 来包含lib1 库,如下所示。

    dependecies {
         api files('libs/lib1.jar')
    
         ... some other libraries ...
    }
    

    tl;dr

    apiimplementation 之间的区别在gradle docs 网站中解释如下。

    api 配置应该用于声明依赖关系 由库 API 导出,而 implementation 配置 应该用于声明内部的依赖项 组件。

    对使用api的影响
    如果您在lib1 中进行任何更改,它将增加构建时间。因为它需要重建你的my-libapp。在你的情况下,它不会发生。查看此reference article 了解更多信息。

    【讨论】:

    • 感谢您抽出时间 Mahendran。还是不行,还有其他选择吗?
    • @Eduardo 您能否发布您的代码。这样我就可以检查并让你知道。
    • 感谢您的帮助 Mahendran,我刚刚解决了这个问题,将我的库添加为 Android 库,并将此库中的 .jar 设置为 API。
    • @Eduardo 我希望这与我在答案中提到的相同。因此,如果您认为上述一个是有效的,除非它作为答案。如果没有发布您的答案并接受它。
    猜你喜欢
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 2011-10-01
    • 2019-01-18
    • 2015-10-06
    相关资源
    最近更新 更多