AndroidX迁移和吐槽

2023-05-16

  最近引入一个第三方,需要使用androidx扩展库,compile后发现与旧的support库无法兼容,于是逐个的把support的库换成了androidx系列,倒腾半天,失败无数次,不过最终还是将它拿下了[/得意]。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/iv_head"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:text="TextView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/iv_head" />
</androidx.constraintlayout.widget.ConstraintLayout>

  以上这个布局文件不过是把最外层的布局更换为了androidx的ConstraintLayout,结果在Adapter中inflater的时候,一直报错,android.view.InflateException: Binary XML file line #19: Error inflating class android.view.TextView,看起来这个xml很正常,没毛病啊。尝试将外层布局更换为线性布局,然并卵。经过查看发现项目中有一个adapter也用了constraintlayout和TextView然而那个页面确实正常运行,不闪退。代码比对很多次也没发现问题所在。后来去build.gradle鬼使神差的根据提示把implementation 'androidx.appcompat:appcompat:1.2.0-beta01’由之前的implementation 'androidx.appcompat:appcompat:1.2.0-alpha02’改为beta01,再次运行后,奇迹般的没事儿了!为什么有的页面就行呢?可能是之前版本的一个bug。具体也没研究。自己水平还有待提高啊。突然想起来前几天看到一个程序员大牛在用一个开源的性能分析工具分析app的某个问题时候,始终没找到一个奇怪的问题的原因,于是他把那个开源分析工具代码从头到尾看了一遍竟然发现是这个工具的bug导致的,当时就震惊了!太难以置信了!佩服!
  看到build.gradle文件的内容发现这些androidx扩展库有的还停留在alpha和beta阶段,alphabet公司竟然就推给开发者使用了,WTH!就不能稳定再推出androidx吗?本来还能愉快的开发,这一更新都得和开发环境干上半天,半天下去发现时间所剩无几,大好时光都浪费在无意义的事情上面了,不知道ab公司是怎么想的,希望他们可以重视一下android开发者的感受,稳定后再推广,善待android开发人员。
  如果需要迁移请参考这篇文章AndroidX迁移,最终迁移成功。

  • 导入项目运行出错,提示
    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.

在全局搜索(ctrl + shift + f)发现许多文件都在用旧的v4,v7等支持包的类,如果逐个修改的话,工作量实在是太大了,在Studio中点击菜单Refactor -> Migrate to AndroidX即可出现提示,是否全部修改,点击do Refactor就可以全部改掉了。可以根据提示备份backup一下项目到zip文件,更稳妥。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AndroidX迁移和吐槽 的相关文章

随机推荐

  • Android把图片压缩到一定大小并不失真

    本文转载只供参考 一 图片压缩方式 图片按比例大小压缩方法 64 param srcPath xff08 根据路径获取图片并压缩 xff09 64 return public static Bitmap getimage String sr
  • Android 动态设置TextView的位置

    RelativeLayout LayoutParams layoutParams 61 new RelativeLayout LayoutParams 40 40 宽高 layoutParams setMargins int dstX 20
  • 神经网络应用较多的算法,图卷积神经网络应用

    神经网络原理及应用 神经网络原理及应用1 什么是神经网络 xff1f 神经网络是一种模拟动物神经网络行为特征 xff0c 进行分布式并行信息处理的算法 这种网络依靠系统的复杂程度 xff0c 通过调整内部大量节点之间相互连接的关系 xff0
  • Java泛型学习

    纯属个人理解 xff0c 代码参考自视频 用途 xff1a 1 用于集合容器中 xff0c 可以使集合记住存储数据的类型 xff0c 防止频繁转换类型可能导致的ClassCastException 用于javac编译器的类型检查 xff0c
  • Java反射学习

    文字和代码来源于视频 反射 xff0c 通过它我们可以得到一个Java类的全部信息 xff0c 可以调用类的普通方法 xff0c 构造方法 xff0c 对类进行实例化 xff0c 操作类的属性 类中的所有内容 xff1a 属性 构造方法 普
  • 面试题之反转单向链表

    题目为 xff1a 将一个单向链表反转 xff0c 写出算法步骤或代码 懵批了 今学习如下 xff0c 文章代码参考https blog csdn net K346K346 article details 93371829 xff0c 感谢
  • 冒泡排序总结

    本文内容和代码均来自于 漫画算法 xff0c 小灰和大黄的对话 xff0c 非常有趣味的一本书 现理论结合实践 xff0c 做一下测试 span class token keyword private span span class tok
  • net6的Web MVC项目实现限流功能

    原理 xff1a 利用MemoryCache服务组件 xff0c 记录用户最后一次访问接口的时间 xff0c 如果本次访问距离最后一次访问不超过1秒 xff0c 提示用户访问过于频繁 xff0c 否则 xff0c 接口可以正常访问 然后利用
  • 快速排序总结

    文章内容和代码来自 漫画算法 和数据结构教材 现进行一下代码编写练习 1 双边循环法 span class token comment 双边循环法 xff0c 从左右两端分别向中间进行比较和交换数据 递归实现 span span class
  • 堆排序总结

    本文内容来源于 漫画算法 和数据结构教材 这里提到的堆是一个二叉堆 xff0c 本质上是一颗完全二叉树 堆排序只需要一个记录大小的辅助空间 1 java实现 span class token comment 下沉调整 64 param ar
  • 计数排序

    本文内容和代码来自 漫画算法 之前练习的冒泡排序 鸡尾酒排序 快速排序 堆排序都是基于元素比较和位置元素交换实现的 xff0c 有一些特殊的排序并不基于元素比较 xff0c 如计数排序 桶排序 基数排序 以计数排序来说 xff0c 这种排序
  • 桶排序

    本文内容和代码来源于 漫画算法 针对计数排序的局限性 xff0c 桶排序做出了弥补 xff0c 时间复杂度同样是线性级 类似于计数排序所创建的统计数组 xff0c 桶排序需要创建若干个桶来协助排序 那么桶排序中所谓的 桶 xff0c 又是什
  • 归并排序

    本文内容和代码来源于数据结构教材 归并排序 Merging Sort 是又一类不同的排序方法 34 归并 34 的含义是将2个或2个以上的有序表组合成1个新的有序表 无论是顺序存储还是链表存储结构 xff0c 都可在O m 43 n 的时间
  • 插入排序

    文章内容来源于数据结构教材 C语言版 教材讲解了4种插入排序算法 xff0c 分别为 1 直接插入排序 2 折半插入排序 3 2 路插入排序 4 表插入排序 还有一个希尔排序 属于插入排序分类 本文只将1 2 xff0c 两种算法进行了实践
  • 希尔排序

    本文内容来源于数据结构教材 C语言版 希尔排序 Shell s Sort xff0c 又称缩小增量排序 Diminishing Increment Sort xff0c 它也是一种属插入排序类的方法 xff0c 但在时间效率上较前几种插入排
  • Java swing绘制柱状图和饼图

    15 14编写程序 xff0c 使用条形图显示作业 平时测验 其中考试和期末考试占总成绩的百分比 假设作业占20 用红色显示 xff0c 平时测验占10 用蓝色显示 xff0c 其中考试占30 用绿色显示 xff0c 期末考试占40 用橙色
  • Java注解(Annotation)学习

    xff08 本文内容来源于疯狂Java讲义 xff0c 感谢 xff09 注解 Annotation Annotation是代码里的特殊标记 xff0c 这些标记可以在编译 类加载 运行时被读取 xff0c 并执行相应的处理 通过使用注解
  • Java Swing制作古老的打砖块游戏

    最近研究了一下古老的Java Swing xff0c 研究之余 xff0c 突发奇想开发了一个打砖块小游戏 首先看一下效果图 具体过程 1 游戏框架搭建1 1步骤 2 开发过程2 1各种游戏对象的绘制2 2游戏对象的运动2 3小球和砖块的碰
  • 局域网下yum代理配置

    需求背景 由于公司局域网内无法连接外网 xff0c 只有一台服务器能连接外网 xff0c 可选择搭建squid作为代理 xff0c 供无法访问外网的服务器 xff0c 安装软件使用 安装Squid yum install y squid 配
  • AndroidX迁移和吐槽

    最近引入一个第三方 xff0c 需要使用androidx扩展库 xff0c compile后发现与旧的support库无法兼容 xff0c 于是逐个的把support的库换成了androidx系列 xff0c 倒腾半天 xff0c 失败无数