AndroidX replaces the original support library APIs with packages in the androidx namespace. Only the package and Maven artifact names changed; class, method, and field names did not change.
,Google再也不对android support
库进行维护,android support
中的API由命名空间AndroidX
下的软件包进行替换,即相应的包名
和Maven工件名
发生改变。android
support
库版本升级至28(Android 9),这也是support library
的最后版本,SDK 28 和AndroidX 1.0 是等效的。This is because AndroidX artifacts with version 1.0.0 are binary equivalent to the Support Library 28.0.0 artifacts.
,compileSdkVersion 28
gradle-wrapper.properties
中Gradle插件版本不低于4.6。distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
# Android 插件会使用对应的 AndroidX 库而非支持库。 android.useAndroidX=true # Android 插件会经过重写现有第三方库的二进制文件,自动将这些库迁移为使用 AndroidX,但并不彻底自动。 android.enableJetifier=true
Refactor-> Migrate to AndroidX
,会提示备份当前工程,勾选Backup project as Zip file
,能够自动帮你备份。Do Refactor
在一键迁移以后,gradle文件中implementation的全部support库被androidx替换,好比app
implementation 'com.android.support:appcompat-v7:28.0.0' 变为 implementation 'androidx.appcompat:appcompat:1.0.0'
相应类名也会发生改变gradle
import android.support.v7.app.AppCompatActivity; 变为 import androidx.appcompat.app.AppCompatActivity;
因此,能够先看看上面两项结果,若是没有替换成功,可手动替换,相应替换可查阅官方提供的CSV格式的依赖库映射文件和类映射文件。ui
rebuild project
,若是编译经过,那么恭喜你了,我反正是失败了。google
implementation
引入的库,好比implementation androidx.recyclerview:recyclerview:1.0.0'
,则一键迁移后导入的类为import androidx.appcompat.widget.RecyclerView;
,须要替换为import androidx.recyclerview.widget.RecyclerView;
,猜想只是全局替换掉support
字样。由于相似
还有GridLayoutManager
、FragmentTransaction
;support
库和androidx
是不能共存的,spa
androidx
,可是老项目中导入了许多第三方的库,这些旧版本的库使用的是support
。androidx
,也会报错。解决方法:插件
androidx
的版本,若是这个库没有使用androidx
的版本,那就要找其余的方案代替吧(不知道是不是正确的解决方案)。总之,就是多build,根据异常信息解决问题。版本控制
AndroidX预览
官方迁移教程
谷歌开发者-是时候迁移至 AndroidX 了code
本文如有出入,请指正!
我是小小范同窗。教程
本文由博客一文多发平台 OpenWrite 发布!