我有一个带gradle的Android项目 . 问题是:在 project
视图中,我看到 support-v4
库的几个版本,例如 support-v4-21.0.3
和 support-v4-22.2.0
.
But in build.gradle I don't have support-v4 at all.
但我在 build.gradle
中有~10个其他依赖项 . 例如 appcompat-v7:22.2.0
. 我可以建议 appcompat-v7:22.2.0
在maven依赖项中依赖于 support-v4-22.2.0
并隐式地将它拉出来 . 但是我没有想法会拉扯 support-v4-21.0.3
.
据我所知,所有这些libs将包装在我的APK中并增加APK的重量 .
所以我有下一个问题:
-
如何避免库重复?
-
如何在Android Studio中查看maven依赖项?
-
如何检测哪个库需要此库?例如哪个库在我的项目中需要
support-v4-21.0.3
?
1 回答
To find duplicate dependencies or its required dependencies ,您可以在树中可视化库依赖项 . 执行gradle命令如下 .
请注意,在Windows中运行
gradlew
,如下所示 .命令结果将显示所有依赖项的人类可读树层次结构,如下所示 .
您可以看到覆盖依赖关系,并考虑应该避免哪些依赖关系 . 在上面的示例中,最后一行
com.android.support:support-annotations
在内部从22.1.1
覆盖到22.2.0
.To avoid duplicates ,您可以在每个项目
build.gradle
文件中添加exclude
子句 .有关更多信息,请参阅https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies上的教程