旧项目升级AndroidX过程及遇到问题解决方案

对于AndroidX的态度是:在AndroidX比较稳定的情况下跟上Google,因为越往后面可能出现某个功能是需要AndroidX才支持的,这时候再升级AndroidX风险不可估量。

1、菜单选择Refactor->Migrate to AndroidX,建议勾选备份项目压缩包(有SVN、Git之类自行而定)

编译器会帮我们找出需要重构的文件,所以直接点击“DO REFACTOR”就行

2、会在项目根目录的gradle.properties中自动添加配置

3、项目有可能会抛出以下错误:

(1)项目中集成Glide

一开始能想到的是 是不是缺少annotation(androidx)注解依赖

a、先尝试添加implementation 'androidx.annotation:annotation:1.1.0',本身类中是有import以下两个类引用,编译还是一样,应该是其他问题导致

import androidx.annotation.CheckResult;
import androidx.annotation.NonNull;

b、网上同样是升级AndroidX导致Glide找不到注解问题,添加annotationProcessor 'androidx.annotation:annotation:1.0.0'就行

(2)项目中集成ButterKnife

我的项目当前是9.0.0,Build抛出:

The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.

依赖新版本,然后反射正常:

4、对应修改编译版本、编译工具版本、目标版本;同时记得修改其他module的build文件配置

compileSdkVersion 29、buildToolsVersion '29.0.3'、targetSdkVersion 29

5、在ToolBar中Tablayout显示异常:com.google.android.material.tabs.TabLayout(项目中指定高度是wrap_content)

(1)未修改前运行效果

(2)修改后运行效果(添加属性app:tabPadding="12dp"或指定高度android:layout_height="45dp")

==>目前我的项目在升级过程中出现上面两个问题,有其他问题我会再记录到这里。(Android 10.0版本兼容问题另外发文)

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值