如何在整个项目中使用相同的库?
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?
嗯,两件事之一:
如果您一贯使用 compile "com.android.support:appcompat-v7"
,Gradle 将只使用该依赖项的一个副本。
您的构建可能会失败,并显示一条错误消息,抱怨重复的 Java classes,源于重复的库。如果您实际上没有在一个地方使用 com.android.support:appcompat-v7
,而是通过其他方式添加 appcompat-v7
(例如,直接针对该库项目的副本进行编译),则会发生这种情况。
不能 发生的是双倍大小的情况,因为您不能在一个文件中拥有相同 Java class 的两个副本单个 APK。
我在一个项目中使用了很多应用程序,例如:
所以我在这里有一些问题,应用程序必须实现迭代库?
假设我的 "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?
嗯,两件事之一:
如果您一贯使用
compile "com.android.support:appcompat-v7"
,Gradle 将只使用该依赖项的一个副本。您的构建可能会失败,并显示一条错误消息,抱怨重复的 Java classes,源于重复的库。如果您实际上没有在一个地方使用
com.android.support:appcompat-v7
,而是通过其他方式添加appcompat-v7
(例如,直接针对该库项目的副本进行编译),则会发生这种情况。
不能 发生的是双倍大小的情况,因为您不能在一个文件中拥有相同 Java class 的两个副本单个 APK。