我在一个项目中使用了很多应用程序,如:
所以我在这里有一些问题,应用程序必须实现迭代库吗?
假设我的“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 库,包含代码和资源。
答案 0 :(得分:1)
apk将使用两个库编译并加倍大小?
没有
然后在编译过程中发生了什么?
嗯,两件事之一:
如果您始终使用compile "com.android.support:appcompat-v7"
,Gradle将只使用该依赖项的一个副本。
您的构建可能会失败,并显示一条错误消息,抱怨重复的Java类,源于重复的库。如果您实际上并未在一个地方使用com.android.support:appcompat-v7
,而是通过其他方式添加appcompat-v7
(例如,直接针对该库项目的副本进行编译),则会发生这种情况。
无法发生的事情是你的双倍大小的场景,因为你不能在一个APK中拥有同一个Java类的两个副本。