2019年九月,google正式发布了android10,由于android对android9以后的包不再维护,最近客户也是很多android10的手机出了问题,所以不得不进行迁移至android10进行兼容
下面是我的迁移过程以及遇到的一些问题进行记录,希望可以帮助迁移中遇到问题的你:
一.
首先进行版本升级:compileSdkVersion 、targetSdkVersion都改为29
二.
和所有迁移项目一样:进行转换:
三、
转换成功可在gradle.properties 看到如下属性,代表适配androidx
android.useAndroidX = true android.enableJetifier = true
四、
我的没有全部转换成功,所以我进行了手动转换
以下是相应的对应包,没有全部写出来,只具代表性:
1. implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
2. implementation 'com.android.support:multidex:1.0.3'
implementation 'androidx.multidex:multidex:2.0.1'
3. implementation 'com.android.support:design:27.1.1
implementation 'com.google.android.material:material:1.2.1'
4. implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'androidx.cardview:cardview:1.0.0'
5. implementation 'com.android.support:recyclerview-v7:27.1.1
implementation 'androidx.recyclerview:recyclerview:1.1.0'
注:有的包名需要手动导入,不是完全自动的
五:
如果项目中有用到ButterKnife的,需要更新至版本10.0.0
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' implementation 'com.jakewharton:butterknife:10.0.0'
六、
有用到BaseRecyclerViewAdapterHelper的,需更新到3X,兼容androidX
implementation group: 'com.github.CymChad', name: 'BaseRecyclerViewAdapterHelper', version: '3.0.4'
七:
有用到imageloader的,虽然现在很老了,但是有的项目一直没换,所以换Glide工程也会很大,那么就找找有没有兼容androidX的imageLoader吧
一通找到这个:
universal-image-loader-1.9.5.jar
更新包中的旧方法,替换为新方法:
diskCache、LimitedAgeDiskCache、DiskCacheFileNameGenerator
以上就是我转换androidx的记录
八、
希望在Android 10以下的设备中仍然获取设备IMEI等信息,可按以下方式进行适配:
<uses-permission android:name="android.permission.READ_PHONE_STATE"
android:maxSdkVersion="28"/>
添加 android:maxSdkVersion="28"
以上就是我迁移androidx的记录啦,希望可以帮助到你们,还有更能坑的可以一起讨论!!!
iskCache
LimitedAgeDiskCache
diskCacheFileNameGenerator
iskCache
LimitedAgeDiskCache
diskCacheFileNameGenerator
diskCache
LimitedAgeDiskCache
diskCacheFileNameGenerator
diskCache
LimitedAgeDiskCache
diskCacheFileNameGenerator
有用到Base
RecyclerViewAdapterHelper