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

时间:2017-07-19 21:15:39

标签: android android-gradle android-library android-build

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

enter image description here

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

假设我的“app”com.android.support:appcompat中有gradle并且在我的“opencv-java”gradle中有相同的一个,那么apk将使用两个库进行编译并加倍大小?

  • 如果不是,那么编译过程中发生了什么?

  • 如果是,我怎么能避免这种情况,有办法还是某种方式?

更新

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

1 个答案:

答案 0 :(得分:1)

  

apk将使用两个库编译并加倍大小?

没有

  

然后在编译过程中发生了什么?

嗯,两件事之一:

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

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

    < / LI>

    无法发生的事情是你的双倍大小的场景,因为你不能在一个APK中拥有同一个Java类的两个副本。