【问题标题】:Android: How to Solve Library Dependency conflict [closed]Android:如何解决库依赖冲突 [关闭]
【发布时间】:2015-06-12 07:45:52
【问题描述】:

我正在开发一个 Android 库。图书馆几乎没有依赖性。我不确定如果开发人员将我的库与我的库中已经存在的其他依赖项一起使用会发生什么。我试图用谷歌搜索,但找不到任何东西。

例如,我在我的库中使用版本 X 的 Volley 库并将其作为 gradle 包发送。开发人员将版本 Y 的 Volley 与我的库一起导入。

在库(模块、jar 或包)中包含依赖项以尽量减少冲突情况的最佳方式应该是什么。

【问题讨论】:

  • 如果有文档可以回答这个问题,那就太好了。事实上,我们只剩下 SO 作为回答这个问题的最佳途径。虽然它并不具体,但它是所有android 程序员最终都必须处理的事情。一个笼统的答案比一千个具体的答案更有帮助。

标签: android gradle


【解决方案1】:

两种选择

  1. 在其中包含依赖项的可能方法是创建一个 fat/uber/share jar(有 Gradle 插件)。使用自定义类加载器通过 One-Jar 在 jar 中加载 jar。或者使用Jar Jar Links
  2. 第二个选项是专门exclude transistive dependencies做:

    compile('X') {
        exclude module: 'Y'
    }
    

【讨论】:

    【解决方案2】:

    您将指定用户排除其他库。 来自我的 gradle 的示例

    compile('com.mobprofs:retrofit-simplexmlconverter:1.1') {
        exclude module: 'stax'
        exclude module: 'stax-api'
        exclude module: 'xpp3'
    }
    

    一般来说,如果用户有冲突,他会知道 gradle 是如何工作的,他将能够添加 eclude 库

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    相关资源
    最近更新 更多