添加清单文件后,清单合并失败:“ androidx.lifecycle:lifecycle-compiler:2.0.0”

时间:2018-11-11 06:10:29

标签: android manifest android-livedata

编写有关LiveData和ViewModel的教程。 在build.gradle中,我添加了:

// 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 个答案:

答案 0 :(得分:1)

这是因为您没有正确设置项目以使用Android的新AndroidX支持库。参见AndroidX。最快的解决方案是使用LiveData deps中显示的androidx之前的依赖项。否则,请参考上一个链接以在项目中正确设置AndroidX。通过在您的gradle.properties中添加android.useAndroidX=true android.enableJetifier=true可以很容易地做到这一点。这些会导致编译器将android支持库转换为相应的AndroidX库。