Android X 向后兼容
Android X backwards compatibility
我有 Android 个使用支持库版本 27.1.2 的应用程序。我想使用使用 Android X (api 28).
编写的库
库版本的名称间距几乎没有问题。
例子...
图书馆有一个我想与 api
一起使用的对话框
Dialog.show(androidx.fragment.app.FragmentActivity activity);
但是我所有的活动都在使用
android.support.v4.app.FragmentActivity
编译器不喜欢这样。
目前无法将我的项目升级到最新版本,因此请不要升级答案,除非这是唯一的解决方案。
有没有办法解决这个不兼容的问题?
提前致谢。
这是不可能的。要使用依赖于 AndroidX 的任何库,您的项目必须 migrate your whole project to AndroidX.
请注意, 受支持 - 您可以在使用 AndroidX 的项目中使用通过支持库构建的库(这就是 android.enableJetifier=true
标志的目的)。
AndroidX
- 消费者
support
-> 生产者 androidX
- 不兼容。
您应该 migrate 您的用户使用 AndroidX。 Android Studio menu -> Refactor -> Migrate to AndroidX...
- 消费者
androidX
-> 生产者 support
- 兼容.
消费者的 gradle.properties
除了使用 androidX
外,还应启用 Jetifier
将 support
转换为 androidX
android.useAndroidX=true
android.enableJetifier=true
有办法
Jetifier 工具迁移依赖库的库以依赖等效的 AndroidX 包。但是当你放上-r flag的时候,就让他进行了完全相反的过程。
If you pass the -r flag, the utility runs in reverse mode. In this
mode, the utility converts AndroidX APIs to the support library
equivalents, instead of the other way around. Reverse mode is useful,
for example, if you are developing libraries that use AndroidX APIs,
but also need to distribute versions that use the support library.
无论如何,我会建议只有在非常关键的需求下才使用它。
我有 Android 个使用支持库版本 27.1.2 的应用程序。我想使用使用 Android X (api 28).
编写的库库版本的名称间距几乎没有问题。
例子...
图书馆有一个我想与 api
一起使用的对话框Dialog.show(androidx.fragment.app.FragmentActivity activity);
但是我所有的活动都在使用
android.support.v4.app.FragmentActivity
编译器不喜欢这样。
目前无法将我的项目升级到最新版本,因此请不要升级答案,除非这是唯一的解决方案。
有没有办法解决这个不兼容的问题?
提前致谢。
这是不可能的。要使用依赖于 AndroidX 的任何库,您的项目必须 migrate your whole project to AndroidX.
请注意, 受支持 - 您可以在使用 AndroidX 的项目中使用通过支持库构建的库(这就是 android.enableJetifier=true
标志的目的)。
AndroidX
- 消费者
support
-> 生产者androidX
- 不兼容。
您应该 migrate 您的用户使用 AndroidX。 Android Studio menu -> Refactor -> Migrate to AndroidX...
- 消费者
androidX
-> 生产者support
- 兼容.
消费者的 gradle.properties
除了使用 androidX
外,还应启用 Jetifier
support
转换为 androidX
android.useAndroidX=true
android.enableJetifier=true
有办法
Jetifier 工具迁移依赖库的库以依赖等效的 AndroidX 包。但是当你放上-r flag的时候,就让他进行了完全相反的过程。
If you pass the -r flag, the utility runs in reverse mode. In this mode, the utility converts AndroidX APIs to the support library equivalents, instead of the other way around. Reverse mode is useful, for example, if you are developing libraries that use AndroidX APIs, but also need to distribute versions that use the support library.
无论如何,我会建议只有在非常关键的需求下才使用它。