android - Android:添加 Firebase 要求时出现 build.gradle 错误
问题描述
当我按照 Firebase 说明并添加时:
classpath 'com.google.gms:google-services:4.2.0'
到dependencies
和:
implementation 'com.google.firebase:firebase-core:17.0.0'
同样,dependencies
突然间我在以下行中遇到错误dependencies
:
implementation 'com.android.support:appcompat-v7:27.1.1'
这是错误消息:
Dependencies using groupId com.android.support and androidx.* can not be combined but found IdeMavenCoordinates{myGroupId='com.android.support', myArtifactId='animated-vector-drawable', myVersion='27.1.1', myPacking='aar', myClassifier='null'} and IdeMavenCoordinates{myGroupId='androidx.lifecycle', myArtifactId='lifecycle-viewmodel', myVersion='2.0.0', myPacking='aar', myClassifier='null'} incompatible dependencies less... (⌘F1)
Inspection info:There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion).
我该怎么办?为什么在添加 Firebase 后会发生这种情况?
解决方案
(编辑:这是由于某些问题而被删除的原始答案的改进答案。)
Firebase 在最新版本中迁移到了 AndroidX。意思就是,
AndroidX 将原始支持库 API 包映射到 androidx 命名空间。只有包和 Maven 工件名称发生了变化;类、方法和字段名称没有改变。
因此,最新的 firebase 版本不再支持旧的支持库。你必须降级firebase,
implementation 'com.google.firebase:firebase-core:16.0.9'
或迁移您的应用程序以使用 AndroidX,如下所述。(无论如何,如果您的应用程序依赖于任何com.google.android.gms
或com.google.firebase
库,您应该准备此迁移)
此版本是主要版本更新,包括重大更改。在此版本中,库从 Android 支持库迁移到 Jetpack (AndroidX) 库。除非您在应用程序中进行以下更改,否则更新的库将不起作用:
将 com.android.tools.build:gradle 升级到 v3.2.1 或更高版本。
将 compileSdkVersion 升级到 28 或更高版本。
更新您的应用以使用 Jetpack (AndroidX);按照迁移到AndroidX 中的说明进行操作。
使用 Android Studio 3.2 及更高版本,迁移要容易得多。从菜单栏中选择Refactor > Migrate to AndroidX,我们可以迁移到 AndroidX。
任何 Maven 依赖项都可以如下处理,
尚未迁移到 AndroidX 命名空间的 Maven 依赖项,当您在 gradle.properties 文件中将以下两个标志设置为 true 时,Android Studio 构建系统也会为您迁移这些依赖项:
android.useAndroidX=true android.enableJetifier=true
要迁移不使用任何需要转换的依赖项的任何第三方库的现有项目,您可以将 android.useAndroidX 标志设置为 true 并将 android.enableJetifier 标志设置为 false。
推荐阅读
- flutter - 即使使用异步,在 Flutter 中的繁重计算操作期间 UI 也会滞后
- c# - System.Web.UI.WebControls.BaseDataBoundControl.DataSource.get 返回 null
- javascript - 为什么我们需要在 JavaScript 中未定义?它的目的是什么?
- http - HAProxy - 除了网络白名单之外的选项转发
- c# - 如何确定 SelectedIndexChanged 是否因取消选择或选择而触发
- python - 我不断收到找不到“pdf”的“反向”。“pdf”不是有效的视图函数或模式名称。错误
- python - 计算机视觉技术测量同一物体的距离?
- mulesoft - 为每个 Mulesoft 迭代 Ma
- testing - 与 Gigya SSO 的 TestCafe 相关的问题
- spring - Jetty 9 出于安全原因不想显示 Stacktraces