添加 Firebase 核心版本 17.0.0 后清单合并失败

Manifest merger failed after adding Firebase core version 17.0.0

提问人:BRDroid 提问时间:7/2/2019 最后编辑:AshishBRDroid 更新时间:7/2/2019 访问量:5464

问:

我在我的项目中添加了 firebase crashlytics 依赖项,之后项目就没有构建了。

https://firebase.google.com/docs/crashlytics/get-started?authuser=0&platform=android#android

你能不能建议一下我可能做错了什么。

谢谢 R

在这些行上生成失败

implementation "com.google.android.gms:play-services-base:17.0.0"
implementation 'com.google.firebase:firebase-core:17.0.0'

这是错误日志

Task :app:processDebugManifest FAILED
C:\Development\xxx\xxx-app\android\app\src\main\AndroidManifest.xml:22:18-91 Error:
    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:7:5-35:19 to override.

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugManifest'.
> 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:7:5-35:19 to override.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.8/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 3s
72 actionable tasks: 70 executed, 2 up-to-date

Gradle 依赖项:

dependencies {
    compile project(':react-native-vector-icons')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:28.0.0"
    compile "com.android.support:support-media-compat:28.0.0"
    compile "com.android.support:support-v4:28.0.0"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile project(':react-native-localization')
    compile project(':realm')
    compile project(':react-native-keychain')
    compile project(':react-native-device-info')
    compile project(':react-native-sensitive-info')
    compile project(':react-native-fs')
    implementation project(':react-native-firebase')
    implementation "com.google.android.gms:play-services-base:17.0.0"
    implementation 'com.google.firebase:firebase-core:17.0.0'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
    //compile project(':react-native-secure-key-store')
}

评分 :

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        //classpath 'com.google.gms:google-services:3.0.0'
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'io.fabric.tools:gradle:1.29.0'  // Crashlytics plugin
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

ext {
    compileSdkVersion = 28
    buildToolsVersion = "28.0.0"
    minSdkVersion = 23
    targetSdkVersion = 28    
}

allprojects {
    repositories {
        mavenLocal()
        google()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}

Gradle 属性:

android.useDeprecatedNdk=true
android.enableAapt2=false
android.useAndroidX=false
android.enableJetifier=false
Android Firebase React-Native android-gradle-plugin 崩溃

答:

26赞 sanoJ 7/2/2019 #1

问题是最新的 firebase 依赖项已迁移到 androidx。因此,一个解决方法是将您的项目迁移到 androidx,请参阅迁移到 androidx(我更喜欢,因为所有新升级都使用 androidx)。或者,您可以将 firebase-core 依赖项降级到以下版本

implementation 'com.google.firebase:firebase-core:16.0.9'

评论

1赞 BRDroid 7/2/2019
嗨,应该更改 com.google.android.gms:play-services-base:17.0.0 的版本
0赞 sanoJ 7/2/2019
是的,您也必须降级它,但请记住,正如我建议的那样,迁移到androidx将来会更有帮助。
3赞 hwde 7/2/2019
降级对我有用。我在 mvnrepository.com/artifact/com.google.firebase/firebase-core 查找了每个 firebase 库,并选择了不高于 2018 年 5 月的最后一个版本。
0赞 natsumiyu 7/23/2019
除了降低火力基础之外,我还需要降低其他东西吗?
1赞 sanoJ 7/23/2019
您必须降级所有使用 Androidx 的库。但我强烈建议您升级到Androidx
1赞 Ranjan Kumar 7/2/2019 #2
1. issue looks to be because of using same support library from two classes.         
-  (android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0]  
- (androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.0.0] .

2. If possible remove the library which is including android support libraries; check using 'gradlew dependencies'.

3. Or use androidx support libraries only remove libraries like 
   compile "com.android.support:appcompat-v7:28.0.0"
   compile "com.android.support:support-media-compat:28.0.0"
   compile "com.android.support:support-v4:28.0.0"

  any specific reason you are using 'compile' instead of 'implementation'?

4. or make change suggested by error dump Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element

评论

0赞 SeanMC 2/7/2020
解决方法是什么?
0赞 Ranjan Kumar 2/10/2020
@SeanMC,我在这个问题上工作了很长时间。我可以知道您面临的错误和相应的详细信息(工具/环境的版本)。
0赞 SeanMC 2/11/2020
没关系。我升级到了androidx,它就消失了