如何知道重复的库是Module还是Group?

dev*_*v90 2 performance android android-layout android-fragments android-gradle-plugin

我在Gradle上收到重复的库错误,aar我在项目中添加的文件之一是http-client-library库附带的。

在此处输入图片说明

现在,我需要从该SDK library文件中删除该库,因为其他一些库也正在使用它。

我尝试了以下。

 compile(name: 'SDK-app-1.0.0', ext: 'aar'){
        exclude module: 'httpclient'
    } 
Run Code Online (Sandbox Code Playgroud)

但它没有影响,我仍然可以httpclient在library的子模块中看到SDK-applibrary。

我无法理解我需要在此处添加什么?是模块还是库,还是应该设置transitive=true为从aar文件中删除该库?

当我尝试在我的项目中添加此库时

重复的zip条目[android-async-http-1.4.9.jar:com / loopj / android / http / AsyncHttpClient $ 1.class])

Bar*_*ski 5

如果您知道该compile声明

解决此问题的最简单方法是获取compile通常将依赖项添加到项目中的语句。

然后,您可以将其拆开以得到groupmodule。像这样:

  1. 识别第一个冒号
  2. 识别第二个冒号
  3. 从开始到第一个冒号的一切都是 group
  4. 第一和第二个冒号之间的所有内容都是 module

分解编译语句

排除依赖关系就像:

compile 'some.imaginary:library:4.8.15', {
    exclude group: 'com.google.dagger', module: 'dagger'
}
Run Code Online (Sandbox Code Playgroud)

如果您不知道该compile声明

如果您没有compile陈述,事情会变得复杂一些(但不会太多)。您可以:

  1. 尝试找出modulegroup寻找在线工件。例如在Maven存储库搜索引擎中。如果查看Maven依赖项,则可以看到groupId代表您groupartifactId标签和代表您的标签module

    Maven依赖

  2. 或者您可以在本地使用gradle:

    1. Terminal在Android Studio中打开窗格:

    终奌站

    1. 输入: ./gradlew androidDependencies
    2. 找到与您要排除并与之拆分的库相关的行,方法与在第一个示例中相同:

    androidDependencies