Gradle重复库不省略

时间:2019-09-19 05:34:04

标签: android gradle

这是我运行./gradlew app:dependencies时的结果:

+--- com.android.volley:volley:1.1.1
+--- com.squareup.picasso:picasso:2.71828
|    +--- com.squareup.okhttp3:okhttp:3.10.0
|    |    \--- com.squareup.okio:okio:1.14.0
|    +--- androidx.annotation:annotation:1.0.0 -> 1.1.0
|    \--- androidx.exifinterface:exifinterface:1.0.0
|         \--- androidx.annotation:annotation:1.0.0 -> 1.1.0
\--- com.myapp:commonlib:1.0.2
     +--- com.android.volley:volley:1.1.1
     \--- com.squareup.picasso:picasso:2.71828 (*)

(*) - dependencies omitted (listed previously)

最后一行表示picasso:2.71828自从出现之前已被省略。

我的问题是:

  1. volley:1.1.1(倒数第二行)也出现在第1行的前面,为什么不省略它(该行的末尾没有(*))?
  2. 重复的库会增加APK的大小吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 重复的库将增加Apk的大小,因为它们在构建最终的APK或应用捆绑包时都是通过gradle打包的。
  2. 依赖项不会被忽略,因为它们来自两个不同的库,并且未指定任何规则来忽略它们。
  3. 您可以通过gradle选项手动排除重复的库

    从build.gradle文件中排除依赖项

     dependencies {
           implementation('some-library') {
            exclude group: 'com.example.imgtools', module: 'native'
           }
        }