【问题标题】:Manifest merger failed when adding latest Room (Android Jetpack)添加最新房间(Android Jetpack)时清单合并失败
【发布时间】:2019-01-14 02:29:13
【问题描述】:

我正在尝试将 Android Jetpack Room 添加到一个 android 项目中。

我在应用程序 gradle 文件中添加了以下内容

def room_version = "2.1.0-alpha03"

implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"

这是 Room 的最新版本。

但是我得到以下构建错误,请帮助!

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

我添加了生命周期、视图模型、导航、工作管理器,但没有任何问题。

添加后

'tools:replace="android:appComponentFactory"

得到以下错误

Manifest merger failed with multiple errors, see logs

我正在使用

  • Linux Mint 18.3
  • Android Studio 3.2.1

【问题讨论】:

  • 您是否尝试在清单文件中添加 tools:replace="android:appComponentFactory"?
  • @AmitJangid 感谢您的评论。我昨天已经试过了,更新了问题。这对我来说似乎是一个错误。降级 2.1.0-alpha02 解决了这个问题。但是 alpha03 带来了许多错误修复
  • 是的,很有可能..因为它是 alpha 版本,它可能有错误..

标签: android android-room android-jetpack


【解决方案1】:

如果您在应用级 build.gradle 文件的“依赖项”部分使用不兼容的工件,就会发生这种情况。推荐修复: Refactor->Migrate to AndroidX... 然后清理并重建项目。

或者,您可以在应用级 build.gradle 文件中替换它:

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-compat:28.0.0'

用这个:

implementation 'androidx.core:core:1.0.1'
implementation 'androidx.appcompat:appcompat:1.0.2'

将这些行添加到gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

并手动修复代码中未解析的引用。

然后同步项目 -> 清理项目 -> 重建项目。

【讨论】:

  • 谢谢,我不知道有迁移选项。
【解决方案2】:

在 build.gradle 中添加此 Room 依赖项后出现此错误:

// Room
def room_version = "2.2.0-rc01"
implementation "androidx.room:room-runtime:$room_version"
// For Kotlin use kapt instead of annotationProcessor
annotationProcessor "androidx.room:room-compiler:$room_version"
// Test helpers
testImplementation "androidx.room:room-testing:$room_version"

在 Android Studio 中做了:

  1. 构建 -> 清理项目
  2. 文件 -> 使缓存无效/重新启动...
  3. 文件 -> 与文件系统同步
  4. 文件 -> 将项目与 Gradle 文件同步
  5. 构建 -> 重建项目
  6. 构建 -> 制作项目
  7. 部署

这就完成了工作。 如果问这是 2018 年 12 月 25 日构建的 Android Studio 3.3。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多