使用Leakcanary 2.0 alpha 2时清单合并失败

use*_*284 3 android leakcanary androidx

我在我的项目中使用leakcanary 1.6.3查找内存泄漏,使用没有任何问题:

debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'
Run Code Online (Sandbox Code Playgroud)

现在,我想将其更新为leakcanary 2.0 alpha 2使用:

debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-alpha-2
Run Code Online (Sandbox Code Playgroud)

但是当我尝试构建项目时,它给了我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.
Run Code Online (Sandbox Code Playgroud)

如何解决此错误?

更新:我正在android.support我的项目中使用库。

use*_*284 6

经过一些leakcanary 2.0 alpha 2代码研究,我发现新版本的库使用androidx库,但是我android.support在项目中使用库。如果我重构项目以使用,androidx则不会发生错误。

看起来:

  • 使用的项目androidx可以使用使用以下内容的库android.support
  • 但是使用的项目android.support不能使用使用以下内容的库androidx

这样的答案解释了androidx如何将您的项目迁移到androidx