代码之家  ›  专栏  ›  技术社区  ›  Werner

添加:annotationProcessor“androidx。生命周期:生命周期编译器:2.0.0”后,清单合并失败

  •  1
  • Werner  · 技术社区  · 7 年前

    编写有关LiveData的教程(&a);视图模型。 内置。gradle I补充道:

    // ViewModel and LiveData
    implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
    

    项目已同步,没有问题。然后我添加了(1):

    annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0"
    

    但是同步失败,所以我添加了(2)(我安装了Java 10.0.2):

    // alternately - if using Java8, use the following instead of lifecycle-compiler
    implementation "androidx.lifecycle:lifecycle-common-java8:2.0.0"
    

    但我得到了相同的清单合并失败错误:

    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:6:5-28:19 to override.
    

    添加到Android清单:

    <application
            android:allowBackup="false"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme"
            tools:ignore="GoogleAppIndexingWarning"
            tools:replace="android:appComponentFactory">
    

    同步失败:

    Java语言lang.RuntimeException:清单合并失败,出现多个 错误,请参阅日志

    1 回复  |  直到 7 年前
        1
  •  1
  •   Danuofr    7 年前

    这是因为您没有正确设置项目以使用Android新的AndroidX支持库。看见 AndroidX . 最快的解决方案是使用androidx之前的依赖项,如 LiveData deps . 否则,请参阅前面的链接以在项目中正确设置AndroidX。通过添加 android.useAndroidX=true android.enableJetifier=true 进入你的梯度。属性。这些导致编译器将android支持库转换为相应的AndroidX库。