Сбой манифеста при добавлении последней версии Room (Android Jetpack) - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь добавить 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"

, которая является последней версией Зала.

Но я получаю следующую ошибку сборки, пожалуйста, помогите!

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.

Я без проблем добавил жизненный цикл, viewmodel, навигацию, рабочий менеджер.

после добавления

'tools:replace="android:appComponentFactory"

получить следующую ошибку

Manifest merger failed with multiple errors, see logs

Я использую

  • Linux Mint 18.3
  • Android Studio 3.2.1

1 Ответ

0 голосов
/ 15 января 2019

Это происходит, если вы используете несовместимые артефакты в разделе «зависимости» файла уровня приложения 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

и вручную исправьте неразрешенные ссылки в вашем коде.

Затем Синхронизировать проект -> Очистить проект -> Перестроить проект.

...