android - Gradle 错误为动态链接添加 firebase 依赖项
问题描述
在我的build.gradle
中,我尝试添加implementation 'com.google.firebase:firebase-dynamic-links:16.0.0'
,但后来我收到了这个错误:
ERROR: In project 'app' a resolved Google Play services library dependency depends on
another at an exact version (e.g. "[15.0.4]", but isn't being resolved to that version.
Behavior exhibited by the library will be unknown.
Dependency failing: com.google.firebase:firebase-analytics-impl:16.0.0 ->
com.google.android.gms:play-services-measurement-base@[15.0.4],
but play-services-measurement-base version was 16.5.0.
The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto com.google.android.gms:play-services-measurement@{strictly 16.5.0}
-- Project 'app' depends onto com.google.firebase:firebase-analytics@{strictly 16.5.0}
-- Project 'app' depends onto com.google.android.gms:play-services-measurement-base@{strictly 16.5.0}
-- Project 'app' depends onto com.google.firebase:firebase-dynamic-links@16.0.0
-- Project 'app' depends onto com.google.firebase:firebase-analytics-impl@{strictly 16.0.0}
-- Project 'app' depends onto com.google.android.gms:play-services-measurement-sdk-api@{strictly 16.5.0}
-- Project 'app' depends onto com.google.android.gms:play-services-measurement-api@{strictly 16.5.0}
-- Project 'app' depends onto com.google.android.gms:play-services-measurement-sdk@{strictly 16.5.0}
-- Project 'app' depends onto com.google.firebase:firebase-core@16.0.9
-- Project 'app' depends onto com.google.android.gms:play-services-measurement-impl@{strictly 16.5.0}
-- Project 'app' depends onto com.google.firebase:firebase-core@{strictly 16.0.9}
-- Project 'app' depends onto com.google.firebase:firebase-dynamic-links@{strictly 16.0.0}
For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https://
github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your b
uild.gradle file.
这是build.gradle
添加动态链接之前的外观
dependencies {
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.google.firebase:firebase-core:16.0.9'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
implementation 'com.google.firebase:firebase-auth:17.0.0'
implementation 'com.google.firebase:firebase-storage:17.0.0'
implementation 'com.google.firebase:firebase-firestore:19.0.1'
implementation 'com.firebaseui:firebase-ui-firestore:4.2.1'
implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.android.gms:play-services-auth:16.0.1'
implementation 'com.google.android.gms:play-services-gcm:16.1.0'
implementation 'com.google.android.gms:play-services-identity:16.0.0'
implementation 'com.google.android.gms:play-services-auth-api-phone:16.0.0'
}
apply plugin: 'com.google.gms.google-services'
我也尝试更新我的 Firebase 依赖项,但每当我这样做时,我都会遇到这个错误 -
ERROR: Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:16:5-188:19 to override.
因此,我将它们保留在旧版本中以避免上述情况。
解决方案
com.android.support
一个人不能同时依赖androidx
- 谷歌播放服务和 Firebase 的更高版本都引入了androidx
依赖项。这些选项可供选择:
- 要么将依赖项降级到仍在使用的版本
com.android.support
。 - 或迁移到 androidx:
dependencies {
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.google.firebase:firebase-core:17.0.1'
implementation 'com.google.firebase:firebase-messaging:19.0.1'
implementation 'com.google.firebase:firebase-auth:18.1.0'
implementation 'com.google.firebase:firebase-storage:18.1.1'
implementation 'com.google.firebase:firebase-firestore:20.2.0'
implementation 'com.firebaseui:firebase-ui-firestore:4.2.1'
implementation 'com.google.android.gms:play-services-base:17.1.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'
implementation 'com.google.android.gms:play-services-gcm:17.0.0'
implementation 'com.google.android.gms:play-services-identity:17.0.0'
implementation 'com.google.android.gms:play-services-auth-api-phone:17.1.0'
}
推荐阅读
- c++ - std::stringstream 使用预分配的堆栈缓冲区进行写入
- python - 使用 Q-Learning 算法同时为多个对象寻找最短路径
- javascript - 内容脚本不与后台脚本通信 - chrome 扩展
- java - 使用 iText 时出现 NoClassDefFoundError
- vala - 如何将文件添加到vala的列表中?
- c++ - 从用户接收的值如何分配给从用户接收的变量?
- node.js - Nginx 配置的 ssl 证书
- gulp - Gulp 没有将 sass 编译为 css
- woocommerce - 更改延期交货 Woocommerce 变体的购买按钮
- reactjs - 将来自 axios 请求的数据保存在全局变量中