androidX ???

首先去google官方看看是什么意思
谷歌文档

AndroidX Overview(安卓X 概览)
AndroidX is the open-source project that the Android team uses to develop, test, package, version and release libraries within Jetpack.
AndroidX is a major improvement to the original Android Support Library. Like the Support Library, AndroidX ships separately from the Android OS and provides backwards-compatibility across Android releases. AndroidX fully replaces the Support Library by providing feature parity and new libraries. In addition AndroidX includes the following features:

  • All packages in AndroidX live in a consistent namespace starting with the string androidx. The Support Library packages have been mapped into corresponding androidx.* packages. For a full mapping of all the old classes and build artifacts to the new ones, see the Package Refactoring page.
  • Unlike the Support Library, AndroidX packages are separately maintained and updated. The androidxpackages use strict Semantic Versioning starting with version 1.0.0. You can update AndroidX libraries in your project independently.
  • All new Support Library development will occur in the AndroidX library. This includes maintenance of the original Support Library artifacts and introduction of new Jetpack components.

翻译一下:
AndroidX 是 Android 团队用于在 Jetpack 中开发、测试、打包和发布库以及对其进行版本控制的开源项目。
AndroidX 对原始 Android 支持库进行了重大改进。与支持库一样,AndroidX 与 Android 操作系统分开提供,并与各个 Android 版本向后兼容。AndroidX 完全取代了支持库,不仅提供同等的功能,而且提供了新的库。此外,AndroidX 还包括以下功能:

  • AndroidX 中的所有软件包都使用一致的命名空间,以字符串 androidx 开头。支持库软件包已映射到对应的 androidx.* 软件包。有关所有旧类到新类以及旧编译工件到新编译工件的完整映射,请参阅软件包重构页面。
  • 与支持库不同,AndroidX 软件包会单独维护和更新。androidx 软件包使用严格的语义版本控制,从版本 1.0.0 开始。您可以单独更新项目中的 AndroidX 库。
  • 所有新支持库的开发工作都将在 AndroidX 库中进行。这包括维护原始支持库工件和引入新的 Jetpack 组件。
    我这边总结一下:
    简单的说,AndroidX是Android Support Library的改进版,以后新的东西只会更新再AndroidX中,support库会逐渐被放弃。 这可能是个好消息,不用再纠结用v4还是v7了,统统改为X。统一管理,向ios模式靠拢,利于我们开发者工作和后期项目维护

使用 AndroidX
如果要在新项目中使用 AndroidX,则需要将编译 SDK 设置为 Android 9.0(API 级别 28)或更高版本,并在 gradle.properties 文件中将以下两个 Android Gradle 插件标记设置为 true。

  • android.useAndroidX:如果设置为 true,Android 插件会使用相应的 AndroidX 库,而非支持库。如果未指定,则该标记默认为 false。
  • android.enableJetifier:如果设置为 true,Android 插件会重写其二进制文件,自动迁移现有的第三方库以使用 AndroidX。如果未指定,则该标记默认为 false。
    必备条件:
    安卓studio版本号:3.2或者以上
    compileSdkVersion 至少28(android 9.0);
  • 第一步:添加下面两行代码:

#项目迁移至androidx
android.useAndroidX=true
android.enableJetifier=true

  • 第二步:sync一下,然后 Refactor > Migrate to AndroidX

如图的意思,
before proceeding,we recommend that you make a backup of your project depending on your project dependencies,you might need to manually fix some errors after the refactoring in order to successfully compile your project. do you want to proceed with the migration backup project as zip file
在继续之前,我们建议您根据项目依赖性备份项目,您可能需要在重构之后手动修复一些错误,以便成功编译项目。是否要以zip文件的形式继续迁移备份项目?
很明确的指出,可能一键迁移后,依然有些错误,需要手动修复,建议大家备份,以便用来还原。好吧,做好踩坑准备!开干~

点击 Migrate后,经过studio一阵编译替换:
爆出一片红:
如下图所示:

第三步:
然后我

然后运行即可:是可以运行成功的,这时候你是不是很开心,原来就这么简单,no,不要着急,当你在项目中来回点击,发现莫名其妙的崩溃
是因为在fragment和activity中的xml布局中应用的support控件没有替换,所以需要我们去手动查找,替换,注意不要遗漏哦
我们的 项目就出现遗漏现象,上线后,崩溃一大堆,
具体解决步骤:
Activity/Fragment/XML(包括涉及到使用support包的工具类等),原来引用support包中的类,在Migrate后并不能完全对应,会有很多错误(方便还是有代价的,通往幸福的路总是充满坎坷),所以需要改成对应的androidX中的类引用。
全局替换: Edit ->Find -> Replace in path
相应的替换为谷歌的空间即可,然后在全局搜索一下是否还存在 android.support
在这里插入图片描述


混淆文件中的 可以删除了也可以不用处理
在manifest中的需要去查看一下

这个android.support 不需要处理,保持现状即可。
你的androidX迁移不出意外已经完成。
问题:不是所有第三方库都支持anroidX。
解决办法:不用担心,现在常用的大多数库都已经支持androidX了。使用androidX是一种趋势,这还需要程序员们的共同推广。全民androidX的时候,这个问题就不是问题了。
开始我是这么认为的:
第三方库不支持androidx并不影响你使用androidx,反正有Jetifier会帮你修改第三方的依赖
直到被坑了,facebook广告使用了supportv4中的东西,好像反射使用的,而这个v4库需要我去做依赖,但我升级了androidx导致v4无法依赖,直接凉了。。。

安卓项目迁移androidX(为何需要迁移,迁移遇到的问题及解决),必须迁移,早动早省事相关推荐

  1. 升级Android Studio到最新版本,升级Gradle到最新,迁移Androidx之路。

    随着Android手机的发展,Android系统版本的不断更新,迁移Androidx成了绕不开的步骤.如果是新项目,那 一切好说,但如果是老项目,坑死人不偿命(尤其是中途接手别人的项目的开发). 我是 ...

  2. 记录Android修改报名顺便迁移androidx

    修改包名: 我的方法不是正经方法..不能完全修改包名.. 1.修改app的build.gradle 的applicationId ,然后sync一下 ,接着把项目用到的一些配置文件里面哪里有用到pac ...

  3. python网站迁移_在Python中利用Into包整洁地进行数据迁移的教程

    动机 我们花费大量的时间将数据从普通的交换格式(比如CSV),迁移到像数组.数据库或者二进制存储等高效的计算格式.更糟糕的是,许多人没有将数据迁移到高效的格式,因为他们不知道怎么(或者不能)为他们的工 ...

  4. “迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战

    戳蓝字"CSDN云计算"关注我们哦! 作者:稻农 来源:阿里系统软件技术 稻农(叶磊) 阿里云智能事业群高级技术专家 参与主导容器运行时及网络创新工作:目前的工作侧重于基于进程虚拟 ...

  5. 迁移到其他机器_有赞大数据离线集群迁移实战

    ‍‍ 点击关注"有赞coder" 获取更多技术干货哦- 作者:郭理想 & 任海潮部门:数据中台 一.背景 有赞是一家商家服务公司,向商家提供强大的基于社交网络的,全渠道经营 ...

  6. 腾讯云服务器违规封禁数据恢复和迁移教程,腾讯云账号违规被封如何解封迁移数据

    题主最近在腾讯云的服务器被封了,服务器无违规,全因替被人买了几个域名违规,导致账号被封禁,连累账号内的DNS.OSS对象储存.CVM云服务器全部被封! 接到通知的那一刻起,账号内资源全部无法进行任何操 ...

  7. 启动QQ失败,正在迁移个人文件夹,为了保证数据完整,请等待迁移完成后再启动QQ

    装了QQ,当重新设定了保存路径后,出现内容为 "启动QQ失败,正在迁移个人文件夹,为了保证数据完整,请等待迁移完成后再启动QQ" 的弹出提示窗口,长时间没有响应,真是考验我的耐心啊 ...

  8. 启动QQ失败,正在迁移个人文件夹,为了保证数据完整,请等待迁移完成后再启动QQ...

    装了QQ,当重新设定了保存路径后,出现内容为 "启动QQ失败,正在迁移个人文件夹,为了保证数据完整,请等待迁移完成后再启动QQ" 的弹出提示窗口,长时间没有响应,真是考验我的耐心啊 ...

  9. 基于特征的对抗迁移学习论文_学界 | 综述论文:四大类深度迁移学习

    选自arXiv 作者:Chuanqi Tan.Fuchun Sun.Tao Kong. Wenchang Zhang.Chao Yang.Chunfang Liu 机器之心编译 参与:乾树.刘晓坤 本 ...

  10. 安卓项目出现红色感叹号的解决方案

    接触过安卓开发的朋友都知道,有时在将外部安卓项目导入到eclipse集成开发环境中时经常会出现一些这样那样的问题.最常见的就是项目名那里有一个红色感叹号.项目运行时报错,代码里又找不到错误,去网上查了 ...

最新文章

  1. ubuntu上部署svn
  2. ubuntu 16.04安装visual studio code 提示libnss3版本低:NSS = 3.26 is required
  3. 成本中心的费用计划/KP06
  4. [BZOJ2693]jzptab
  5. Spring+SpringMVC+maven使用@aspectJ添加切面
  6. I00032 约瑟夫环(Joseph problem)
  7. 【最新最热12款】Java游戏项目_Java游戏开发_Java小游戏_王者荣耀_超级玛丽_黄金矿工_贪吃蛇_坦克大战_俄罗斯方块_推箱子_飞机大战_扫雷_桌球
  8. 《Windows游戏编程大师技巧》一、学海无涯
  9. oracle多表关联查询技巧,Oracle SQL 多表关联查询
  10. pc端移动端布局有什么区别
  11. 实验8.1 时间换算
  12. 网络威胁情报git【全面】
  13. SPI FLASH测试
  14. @RestController当中的value 含义
  15. Vray材质学习笔记08——陶瓷材质
  16. 学计算机编程难吗,计算机编程入门 计算机编程难学吗
  17. 递归实现二叉树的前序遍历
  18. 破解root密码详细流程
  19. Python·.·.print()函数格式化输出-超详解
  20. 上班没事做gai这么办

热门文章

  1. php 抓取网页图片
  2. 汽车加油问题(python)
  3. 米勒-拉宾质数判断证明
  4. docker 定时重启脚本_定时启动docker容器
  5. 如何让自己的博客被搜索引擎收录
  6. 微服务部署之蓝绿发布、滚动发布、灰度发布区别与特点!
  7. 使用代理ip进行反反爬虫——爬取句子迷网站,获取小说龙族经典句子
  8. SpringBoot专栏:集成定时ScheduledTasks任务,刷新概念了_14讲
  9. oracle分组拼接
  10. 《从0开始做运营[张亮]》——读书笔记