当前位置: 首页 > 知识库问答 >
问题:

Android:如何解决库依赖冲突[关闭]

程谦
2023-03-14

我正在开发一个Android库。该库几乎没有依赖关系。我不确定如果开发人员将我的库与我的库中已经存在的其他依赖项一起使用会发生什么。我试着搜索这个,但什么也找不到。

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

在库(模块、jar或包)中包含依赖项的最佳方式是什么,以最大限度地减少冲突情况。

共有1个答案

周睿范
2023-03-14

两种选择

>

  • 在它们中包含依赖项的依赖项的可能方法是创建一个fat/uber/share jar(有Gradle插件)。使用自定义classloader在使用one-jar的jar中加载jar。或者使用Jar Jar链接。
  • 第二个选项是特定地排除跨接依赖,执行以下操作:

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

  •  类似资料:
    • 我有一个相当大的遗留项目,我正在添加一个组件。此组件使用HtmlUnit。我可以用Maven编译它,但是当我运行它时,我得到: 所以它缺少正确的构造函数。我认为这几乎肯定是中的版本冲突,但我不确定如何解决它。下面是我的(请注意我一直尝试玩的排除和依赖关系管理的所有游戏): 有什么想法吗? 编辑:有人认为这个问题是这个问题的重复,但事实并非如此,因为本例中的依赖类型不是。

    • TL;DR两个gradle插件使用相同依赖项的不同版本,在调用其中一个插件时会导致编译错误。 > 我有一个使用Gradle4编译的Java项目。十、 该项目依赖于两个插件:gradle-jaxb-plugin和serenity-gradle-plugin。 两个插件共享一个依赖项,guice。 我需要升级一个插件(serenety)。升级会导致调用jaxb插件时发生冲突。 我做了一些调查和谷歌搜索

    • 问题内容: 假设我有四个项目: 项目A(依赖于B和D) 项目B(依赖于D) 项目C(依赖于D) 项目D 在这种情况下,如果我运行项目A,则Maven将正确地解决对D的依赖关系。如果我理解正确,则Maven始终以最短的路径获取依赖关系。由于D是A的直接依赖项,因此将使用B内指定的D而不是D。 但是现在假设这种结构: 项目A(依赖于B和C) 项目B(依赖于D) 项目C(依赖于D) 项目D 在这种情况下

    • 我试了好几个小时想找到解决办法,但没有找到。我的问题是,当我建立我的梯度时,我得到了两个错误。我试图在我的Android应用程序中查看这个解决方案依赖冲突错误,该应用程序进行了Android测试,但仍然无法解决这个问题。 这是我的建筑。格雷德尔 我该怎么解决这个?

    • 由一些模块组成的maven项目。我的一个模块正在使用google版本的guava依赖项。现在,我正在我的项目中集成另一个模块,该模块也使用guava但版本。 因此,我希望新模块使用guava版本,而其余项目使用guava版本。我尝试将guava的添加到新模块中,但没有成功。 更新:@Guillaume Darmont的答案为不同的模块解决了问题。但现在我的问题是,新模块有两个依赖项,其中一个使用g