首页 > 解决方案 > 为什么 Android Studio 强制使用 Android 支持库中的 Androidx?

问题描述

在 React Native 项目上工作,但突然停止工作并开始出现错误:

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

我知道 Google 在 28 岁之后已经完成了 Support Library 类,并且我知道如何将整个项目从 Support Library 类迁移到 AndroidX 类。

我的问题是:

标签: androidreact-nativeandroid-support-libraryandroidx

解决方案


您可以锁定您的 googleservices 和 firebase 版本以避免 androidX。

在 android/build.gradle 添加:

buildscript {
  ...
  ext {
    // Lock down googlePlayServicesVersion
    googlePlayServicesVersion = "16.1.0"
    firebaseVersion = "17.6.0"
  }
}

或者在 gradle.properties 添加:

googlePlayServicesVersion=16.1.0
firebaseVersion=17.6.0

推荐阅读