android - 为什么 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 类。
我的问题是:
有没有办法继续使用 Support Library 类而不是转移到 AndroidX 类?
如何解决这个问题?
解决方案
您可以锁定您的 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
推荐阅读
- scala - 在 Mockito 单元测试中抛出异常时,未调用 Future 的 .recover
- c# - VSTO Outlook 从约会中检索 TimeZoneStruct
- bash - 如何在bash中每3个代理选择一个用户名:密码?
- python-3.x - 不知道如何拆分 .dat 文件行
- c++ - 为什么我不能在 if 循环中使用动态变量?
- scala - Spark dataframe 列内容修改
- javascript - 插入符号用js改变背景颜色
- selenium - 无法使用 selenium 测试批处理作业结果需要 20-25 分钟才能完成
- hyperledger-composer - 为超级账本结构创建业务网卡时无法读取 connection.json
- c# - 如何在 MS BOT FRAMEWORK sdk4 中的介绍消息上启用文本到语音服务