我有使用支持库版本27.1.2的Android App。我想使用一个使用Android X(API 28)编写的库。
库版本的名称间距几乎没有问题。
示例...
该库有一个我想与api一起使用的对话框
Dialog.show(androidx.fragment.app.FragmentActivity activity);
但是我所有的活动都在使用
android.support.v4.app.FragmentActivity
并且编译器不喜欢这样。
当前不能将我的项目升级到最新版本,因此请不要升级答案,除非这是唯一的解决方案。
是否可以解决此不兼容问题?
谢谢。
答案 0 :(得分:4)
这是不可能的。要使用任何依赖AndroidX的库,您的项目必须migrate your whole project to AndroidX。
请注意,支持反向 -您可以在使用AndroidX的项目中使用“支持库”内置的库(这是android.enableJetifier=true
标志的目的)。
答案 1 :(得分:1)
AndroidX [About]
support
->生产者androidX
-不兼容。 您应该migrate使用您的消费者才能使用AndroidX。 Android Studio menu -> Refactor -> Migrate to AndroidX...
androidX
->生产者support
-兼容。除了使用gradle.properties
之外,消费者的androidX
还应启用Jetifier
[About],将support
转换为androidX
android.useAndroidX=true
android.enableJetifier=true
答案 2 :(得分:0)
有办法
Jetifier工具迁移依赖于支持库的库,改为依赖等效的AndroidX软件包。但是,当您放置 -r 标志时,这使他进入了完全相反的过程。
如果传递-r标志,该实用程序将以反向模式运行。在这个 模式下,该实用程序会将AndroidX API转换为支持库 等价物,而不是相反。反向模式很有用, 例如,如果您正在开发使用AndroidX API的库, 但还需要分发使用支持库的版本。
无论如何,我建议仅在非常关键的需求中使用它。