Android studio 错误:清单合并失败:属性application@appComponentFactory

Android studio 错误:清单合并失败:属性application@appComponentFactory,android-studio,gradle,android-gradle-plugin,build.gradle,android-manifest,Android Studio,Gradle,Android Gradle Plugin,Build.gradle,Android Manifest,我有一个关于Android Studio中gradle构建的问题。在项目中添加Admob活动时,在向项目添加依赖项时,会抛出两个错误 错误:清单合并失败 org.gradle.execution.MultipleBuildFailures:生成已完成,但有1次失败 对于第一版,建议将“Suggestion:add'tools:replace=“android:appComponentFactory””添加到AndroidManifest.xml:10:5-32:19处的元素以覆盖。 " 即使在添

我有一个关于Android Studio中gradle构建的问题。在项目中添加Admob活动时,在向项目添加依赖项时,会抛出两个错误

  • 错误:清单合并失败

  • org.gradle.execution.MultipleBuildFailures:生成已完成,但有1次失败 对于第一版,建议将“Suggestion:add'tools:replace=“android:appComponentFactory””添加到AndroidManifest.xml:10:5-32:19处的元素以覆盖。 "

  • 即使在添加工具之后:
    replace=“android:appComponentFactory”
    到Androidmanifest gradle同步也会失败

    AndroidManifest:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.ani.admobcheck">
    
    <!-- Include required permissions for Google Mobile Ads to run. -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".Ads"
            android:label="@string/title_activity_ads"></activity>
        <!-- Include the AdActivity configChanges and theme. -->
        <activity
            android:name="com.google.android.gms.ads.AdActivity"
    
    
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiM    ode|screenSize|smallestScreenSize"
                android:theme="@android:style/Theme.Translucent" />
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    
    
    
        Build.gralde :
        apply plugin: 'com.android.application'
    
        android {
    
        compileSdkVersion 28
    
        defaultConfig {
    
            applicationId "com.ani.admobcheck"
    
            minSdkVersion 15
    
            targetSdkVersion 28
    
            versionCode 1
    
            versionName "1.0"
    
            testInstrumentationRunner      
    
    "android.support.test.runner.AndroidJUnitRunner"
    
        }
    
        buildTypes {
    
            release {
    
                minifyEnabled false
    
                proguardFiles getDefaultProguardFile('proguard-android-    
    
    optimize.txt'), 'proguard-rules.pro'
    
            }
    
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:28.0.0'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        implementation 'com.google.android.gms:play-services-ads:18.0.0'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    
    
    Build.gralde:
    应用插件:“com.android.application”
    安卓{
    编译DK28版
    默认配置{
    应用程序ID“com.ani.admobcheck”
    第15版
    targetSdkVersion 28
    版本代码1
    版本名称“1.0”
    测试仪器运行器
    “android.support.test.runner.AndroidJUnitRunner”
    }
    建筑类型{
    释放{
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android-
    optimize.txt'),“proguard rules.pro”
    }
    }
    }
    依赖关系{
    实现文件树(目录:“libs”,包括:['*.jar'])
    实现'com.android.support:appcompat-v7:28.0.0'
    实现'com.android.support.constraint:constraint布局:1.1.3'
    实现'com.google.android.gms:play服务广告:18.0.0'
    测试实现'junit:junit:4.12'
    androidTestImplementation'com.android.support.test:runner:1.0.2'
    androidTestImplementation'com.android.support.test.espresso:espresso核心:3.0.2'
    }
    
    我收到的同步错误为:

    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:10:5-32:19 to override.
    
    错误:清单合并失败:属性
    application@appComponentFactory值=
    (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值=
    (androidx.core.app.CoreComponentFactory)。
    建议:将“tools:replace=“android:appComponentFactory”添加到
    元素:10:5-32:19进行重写。
    

    我尝试在AndroidManifest中添加
    tools:replace=“android:appComponentFactory”
    ,通过将
    googlePlayServicesVersion=“16.+”
    添加到
    app/build.gradle
    ,找到解决方案,因为Google服务已经更新:

    buildscript {
        ext {
            ...
            googlePlayServicesVersion = "16.+"
        }
        ...
    }
    

    我也有类似的问题。在
    gradle.properties
    文件中添加了两行:

    android.useAndroidX=true

    android.enableJetifier=true

    这两行代码自动解决了谷歌文件和第三方依赖之间的依赖冲突