编写有关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:清单合并失败,出现多个 错误,请参阅日志
答案 0 :(得分:1)
这是因为您没有正确设置项目以使用Android的新AndroidX支持库。参见AndroidX。最快的解决方案是使用LiveData deps中显示的androidx之前的依赖项。否则,请参考上一个链接以在项目中正确设置AndroidX。通过在您的gradle.properties中添加android.useAndroidX=true
android.enableJetifier=true
可以很容易地做到这一点。这些会导致编译器将android支持库转换为相应的AndroidX库。