在Android Gradle构建中,如何从包含的jar文件中排除依赖项?

tre*_*ere 20 android jar gradle android-gradle-plugin

在我的Android项目中,我使用了一个jar作为库.我将它包含在依赖项部分中,如下所示:

dependencies {
    ...

    compile files('libs/thethirdpartylibrary.jar')
    ...
}
Run Code Online (Sandbox Code Playgroud)

我也想使用okhttp库,我包括这样的:

compile ('com.squareup.okhttp:okhttp:2.7.5')
Run Code Online (Sandbox Code Playgroud)

(这个特殊版本的okhttp取决于okio 1.6.0.)

问题是第三方jar库依赖于okio v0.9.0而更糟糕的是捆绑它.

结果,我在构建时遇到了一个dex冲突错误.

我能够通过手动从jar文件中删除okio来解决这个问题,这似乎有效.但我想知道是否有办法在gradle中做到这一点.

我的问题:我可以在构建时使用gradle从包含的jar中删除捆绑的,可传递的(< - 我希望我正确地使用这个词)依赖关系吗?

Mah*_*ade 32

使用以下行排除依赖项中的组.

1.    configurations {
        all*.exclude group: 'com.android.support', module: 'support-v4'
    }



2.dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile ("com.xxx:xxx-commons:1.+") {
        exclude group: 'junit', module: 'junit'
    }
}



  3. configurations {
      runtime.exclude group: "org.slf4j", module: "slf4j-log4j12"
    }
Run Code Online (Sandbox Code Playgroud)

试试这个吧.更多细节

  • 2.此语法不适用于基于文件的jar文件(AFAIK ...) (2认同)
  • 但它似乎将它从一切中移除,所以这对我来说不幸没有帮助; - | 谢谢你的努力,顺便说一下! (2认同)