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