2015-06-12 40 views
6

我正在开发一个Android库。图书馆依赖性很小。我不确定如果开发人员使用我的库和其他已存在于我的库中的依赖项会发生什么情况。我试图对此进行搜索,但找不到任何东西。Android:如何解决图书馆依赖冲突

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

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

+0

将是很好,如果有文件,回答了这个问题。事实上,我们留下了SO作为回答这个问题的最佳途径。虽然它不是特定的,但它是所有android程序员最终必须处理的东西。 一般的答案会比一千个具体的答案更有帮助。 –

回答

0

您将指定用户排除其他库。从我的gradle这个

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

一般用户 例子,如果将有冲突,他会知道他会如何工作gradle这个能够添加eclude库

+0

这些模块将从导入的库中排除?或者用户项目? –

+0

https://docs.gradle.org/current/userguide/dependency_management.html - >转到50.4.7。排除传递依赖 –

+0

你看看这里http://stackoverflow.com/questions/16601299/how-to-create-a-library-project-in-android-studio-and-an-application-project-tha和这里http://stackoverflow.com/questions/16718026/how-to-build-an-android-library-with-android-studio-and-gradle? –

2

两个选项

  1. 可能的方式在你的依赖关系中加入依赖关系就是创建一个fat/uber/share jar(这里有Gradle插件)。使用自定义类加载器使用One-Jar加载罐子中的罐子。或者使用Jar Jar Links
  2. 的第二个选项是specificaly exclude transistive dependencies做:

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