如何在整个项目中使用相同的库?

How to use same libraries on whole project?

我在一个项目中使用了很多应用程序,例如:

所以我在这里有一些问题,应用程序必须实现迭代库?

假设我的 "app" gradle 中有 com.android.support:appcompat 并且我的 "opencv-java" gradle 中有相同的 apk 将使用两个库和尺寸翻倍?

更新 :

如果我的应用程序中有库(例如:"volley"、"support" 等)"gradle" 并且我也在我的 open-cv 中使用了它 "gradle" ,这让我能够从 app "gradle" 中删除那些库,似乎在 "gradle" 中使用 compile project(':another-app') 的主应用程序可以使用 another-app 库,包含代码和资产,应有尽有。

the apk will compiled with both libraries and double the size?

没有

then what happened in compiling process?

嗯,两件事之一:

  1. 如果您一贯使用 compile "com.android.support:appcompat-v7",Gradle 将只使用该依赖项的一个副本。

  2. 您的构建可能会失败,并显示一条错误消息,抱怨重复的 Java classes,源于重复的库。如果您实际上没有在一个地方使用 com.android.support:appcompat-v7,而是通过其他方式添加 appcompat-v7(例如,直接针对该库项目的副本进行编译),则会发生这种情况。

不能 发生的是双倍大小的情况,因为您不能在一个文件中拥有相同 Java class 的两个副本单个 APK。