关于androidx迁移问题(以仿今日头条为案例)

1.由于import android.support.v7.app.AppCompatActivity;在编译时报错,我选择采用使用

import androidx.appcompat.app.AppCompatActivity;来代替support库。

Support库已经过时,并且不再被更新

2.在编写代码完成后,编译报了以下错误

错误原因是在Android项目中同时使用了AndroidX和旧的Support库,并且它们在AndroidManifest.xml中定义了冲突的appComponentFactory属性。appComponentFactory是Android用来创建应用程序组件的工厂类。

3.在尝试进行迁移到androidx的过程中,先在build.gradle文件添加android.useAndroidX=true;和android.enableJetifier=true;然后通过Android Studio的Refactor菜单下的Migrate to AndroidX.......选项来完成,迁移后,能解决这个冲突。

但我发现我的菜单的Refactor目录没有这个选项,后来我又进行查询,可能是由于android studio版本过低或是项目配置或缓存等问题,但是我查看了我目前使用的软件的版本

(菜单栏help-about):

我使用的是最新版本,因此排除了版本过低产生的问题。

后来我发现很可能我的软件已经是androidx版本了,所以按照书上的使用support库会产生报错:

(4)成功“迁移”到了androidx(因为本来就是)

我将三个java文件中有关于support库的使用替换为了androidx的版本,例如

修改前

修改后

还有.xml布局文件中有用到的android.support.v7.widget.RecyclerView改为androidx版本

到此完成代码的修改

ps:提供android 移动开发基础-案例教程(第二版)的资源文件(来自公众号相关文件),可以从里面获取示例代码和其他图片资源文件链接:https://pan.baidu.com/s/1Fz164Zg3kZrOeaDfasD9tA?pwd=ivc8 
提取码:ivc8 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值