Ошибка слияния манифеста при использовании leakcanary 2.0 alpha 2 - PullRequest
3 голосов
/ 24 мая 2019

Я использую leakcanary 1.6.3 в своем проекте, чтобы найти утечки памяти без каких-либо проблем, используя:

debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'

Теперь я хочу обновить его до leakcanary 2.0 alpha 2, используя:

debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-alpha-2

Но когда я пытаюсь построить проект, он дает мне manifest merger failed.

ERROR: 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.1] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:10:5-50:19 to override.

Как исправить эту ошибку?

Обновление: Я использую библиотеки android.support в своем проекте.

1 Ответ

6 голосов
/ 29 мая 2019

После некоторых исследований кода leakcanary 2.0 alpha 2 я обнаружил, что в новой версии библиотеки используются библиотеки androidx, но я использую библиотеки android.support в своем проекте.Если я рефакторинг моего проекта для использования androidx, то ошибка не возникает.

Кажется, что:

  • Проект, использующий androidx, может использовать библиотеку, которая использует android.support
  • Но проект, использующий android.support, не может использовать библиотеку, которая использует androidx

Этот ответ SO объясняет androidx и как перенести ваш проектдо androidx.

...