AndroidX升级;项目升级AndroidX遇到的问题和解决;

先不谈为什么要升级AndroidX了,下面是我这个项目升级AndroidX踩的坑,记录一下(我是按照我的顺序来的):

1、升级Gradle版本,修改gradle-wrapper.properties:

 AndroidX最低支持的gradle版本是4.6,我这边直接5.1.1了;

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

2、升级插件版本:

 在主工程(Project)的bulid.gradle里,AndroidX最低支持的版本是3.2,我这边直接3.4.1了;

classpath 'com.android.tools.build:gradle:3.4.1'

3、修改SdkVersion

AndroidX最低支持 28 、28.0.2;

compileSdkVersion: 29
targetSdkVersion : 29
buildToolsVersion "29.0.0"

附带添加一下这个gradle.properties:

# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

4、使用 Migrate to androidx

AndroidX升级;项目升级AndroidX遇到的问题和解决;_第1张图片

AndroidX升级;项目升级AndroidX遇到的问题和解决;_第2张图片

这波操作以后,你的项目就会有大变动了:

AndroidX升级;项目升级AndroidX遇到的问题和解决;_第3张图片

原来的android.xxx.xxx.28.0.2全部变为androidx.xxx.xxx.1.0.0;

下面的这些引入也会变化:

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import androidx.core.content.ContextCompat;
import androidx.appcompat.widget.AppCompatTextView;

坑1、Glide:

Glide中使用的 android.support.annotation.CheckResult 和android.support.annotation.NonNull这两个注解找不到;

解决方法:使用glide4.8.0 、 bulid.gradle中添加以下声明;

"libGlide"                : "com.github.bumptech.glide:glide:4.8.0",
"libGlideCompiler"        :"com.github.bumptech.glide:compiler:4.8.0"
//解决Glide找不到Android声明库问题
    annotationProcessor 'androidx.annotation:annotation:1.0.0'

坑2、ButterKnife

使用ButterKnife 10.1.0版本;

classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0' //这个地方也别忘记改为10.1.0

坑3、Android-PickerView:

PickerView的 com.contrarywind.interfaces.IPickerViewData 会找不到;升级到4.1.8版本即可;

 

 

注意:AndroidX升级后android.support.design 或 android.support.xxx 将会不可用,找不到这些文件;

需要使用AndroidX的新包:AndroidX对应表、androidX与旧包对照表;

你可能感兴趣的:(Android)