【发布时间】:2019-12-07 22:20:38
【问题描述】:
我有一个包含下一个依赖项的库:
implementation 'com.google.android.gms:play-services-safetynet:17.0.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.2'
现在我需要使用这个库将相同的依赖项添加到我的主项目中。
如何实现该库,以便所有这些依赖项不会在主项目中重复?
现在我在我的项目中写:
implementation 'com.mandarine.sdk:mandarine-library:2.0.1@aar'
implementation 'com.google.android.gms:play-services-safetynet:17.0.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.2'//Don't update while support Android SDK < 20
在图书馆:
implementation 'com.google.android.gms:play-services-safetynet:17.0.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.2'
更新: 还尝试在我的项目中写下一个:
api 'com.mandarine.sdk:mandarine-library:2.0.1@aar'
并像这样修改了我的库:
api 'com.google.android.gms:play-services-safetynet:17.0.0'
api 'com.squareup.retrofit2:retrofit:2.5.0'
api 'com.squareup.retrofit2:converter-gson:2.5.0'
api 'com.squareup.okhttp3:logging-interceptor:3.12.2'
不幸的是也不起作用。
【问题讨论】:
-
把工作留给 gradle 来处理。只要确保您引用的版本与您的库也引用的版本相同。 Gradle 将进行合并,不会有重复。只有版本不匹配或类冲突时才需要排除。
-
@GiddyNaya 版本是正确的,但如果我删除这些依赖项,那么应用程序将崩溃
-
使用项目的依赖项会出现什么错误?
-
尝试在项目上启用 Multidex,然后清理并重建项目
标签: android gradle android-gradle-plugin dependencies android-library