gpt4 book ai didi

android - 将 firebase 添加到 android studio 时,gradle 不同步

转载 作者:行者123 更新时间:2023-12-02 10:33:11 25 4
gpt4 key购买 nike

因此,我尝试按照 Firebase 网站的说明将 Firebase SDK 添加到我的 Android Studio 应用中(参见图片)。

将行 classpath 'com.google.gms:google-services:4.3.2' 添加到项目级别 gradle 效果很好。我可以同步 gradle 文件。

但是,将 apply plugin: 'com.google.gms.google-services' 行添加到应用级 gradle 文件会破坏我的应用程序。我收到以下错误:

错误: list 合并失败:属性 application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) 来自 [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18- 91 也存在于 [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory) 中。 建议:将 'tools:replace="android:appComponentFactory"' 添加到 AndroidManifest.xml:5:5-21:19 的元素中进行覆盖。

所以我去执行建议。我将 tools:replace="android:appComponentFactory" 添加到 AndroidManifest.xml 文件中的 >application< 元素。然后,这给我一个命名空间“工具”未绑定(bind)错误。我按 Alt+Enter 进行修复,将 xmlns:tools="http://schemas.android.com/tools" 添加到我的文件顶部。

再次尝试同步。现在我收到类似的错误:错误: list 合并失败,出现多个错误,请参阅日志。这就是我迷失的地方。我不知道在 Google 中搜索什么。搜索此特定错误会带来很多与我的问题无关的答案。这个领域对我来说是全新的。

附注最重要的是,在添加前面提到的 3 后,我的 build.grade(app level) 文件中的 implementation 'com.android.support:appcompat-v7:28.0.0' 行带有红色下划线线。

我注意到还有其他与此相关的问题,但似乎没有一个有可靠的答案。所以我冒着这可能是转发的风险。

编辑::这是我的 gradle 依赖项。

项目 Gradle

dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
classpath 'com.google.gms:google-services:4.3.2'
}

应用程序 Gradle

dependencies {
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
}

编辑2::

好的,迁移到 androidx 后,我更新了所有导入语句以使用 androidx。它仍然一直说合并失败并出现多个错误。我必须删除之前建议添加的行 tools:replace="android:appComponentFactory" 。最后我能够同步并运行我的应用程序!但现在该应用程序只是启动并立即停止。我想这就是进步。对此有什么想法吗?

编辑 3::我终于让它发挥作用了。最后一个问题是 RunTimeError“Error inflating class androidx.constraintlayout.ConstraintLayout”。这是因为我的所有 xml 文件都有 androidx.constraintlayout.ConstraintLayout 行。将其替换为 androidx.constraintlayout.widget.ConstraintLayout 行,现在一切都很顺利了。 Gradle 同步、应用程序加载,不会崩溃,一切都按预期运行

任何帮助将不胜感激。提前谢谢,

弗拉德

enter image description here

最佳答案

问题是您的应用正在使用 android.support 库,而您添加到项目中的 Firebase sdk 使用 AndroidX

注意:AndroidX 和 android.support 不兼容。

因此,您必须将项目迁移到 AndroidX 或使用 Firebase 的支持版本。

  1. 迁移代码以使用 AndroidX

    • 重构选项中选择迁移到Androidx
    • 同步项目就可以了。
  2. 使用非 Androidx firebase。

    • 转到Firebase release notes
    • 查找将库迁移到 AndroidX 之前的最后一个版本
      (例如 Firebase messages 19 使用 androidx,而较低版本则不使用)

TL;DR

迁移到 AndroidX 或使用较低版本的 Firebase 库。

关于android - 将 firebase 添加到 android studio 时,gradle 不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58785487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com