Android转AndroidX

简介: 公司项目多,有些事java,有些是kotlin,有些是Android,有些是AndroidX,一些依赖和依赖库的更新使得调用的方法等不同,导致功能同步时效率及极其低下,于是打算把Android项目转成AndroidX。

1.遇到的问题


公司项目多,有些事java,有些是kotlin,有些是Android,有些是AndroidX,一些依赖和依赖库的更新使得调用的方法等不同,导致功能同步时效率及极其低下,于是打算把Android项目转成AndroidX。



2.为啥转AndroidX?


其实AndroidX并不是什么全新的东西,而是对Android Support Library的一次升级。因此,AndroidX上手起来也没有任何困难的地方,比如之前你经常使用的RecyclerView、ViewPager等等库,在AndroidX中都会有一个对应的版本,只要改一下包名就可以完全无缝使用,用法方面基本上都没有任何的变化。


但是有一点需要注意,AndroidX和Android Support Library中的库是非常不建议混合在一起使用的,因为它们可能会产生很多不兼容的问题。最好的做法是,要么全部使用AndroidX中的库,要么全部使用Android Support Library中的库。


而现在Android团队官方的态度也很明确,未来都会为AndroidX为主,Android Support Library已经不再建议使用,并会慢慢停止维护。另外,从Android Studio 3.4.2开始,我发现新建的项目已经强制勾选使用AndroidX架构了。


为了项目更好的维护和开发,推荐把项目转成AndroidX。



3.实操


自从在 Android 3.2 稳定版中就加入了 "Migrate to AndroidX" 选项,方便大家迁移。


是的,一键迁移,简直不要太爽~


1.在 "Refactor" 菜单中找到 "Migrate to AndroidX" 选项

098339e7ee0b49f99f35d904a287a2b.png



2.点击Migrate开始迁移,backup preject 会把你的项目被分成一个压缩包

9f54384094218ffd5ef1b5196ae0978.png



3.点击Migrate后,Android Studio就会自动检查你项目中所有使用Android Support Library的地方,这些需要修改的地方他会展示给你,点击Do Refactor后,会将它们全部改成AndroidX中对应的库。

9f0d0fbe4bedda5dcb5292cf4de2436.png



4.如果你要检查你是否全部文件都转成AndroidX了,你可以重复123步骤:


03273d7cbca45a02fd79bbfb87021af.png



转移成功后,你可以看到


1.项目的gradle.properties文件里配置已更改为:


android.useAndroidX=true
android.enableJetifier=true

2.build.gradle的依赖库:当然这只是一些基础的库,比如,对应Android和AndroidX,有些第三方库的导入的库也不一样,我的项目里glide在同步后就爆红了,更改后就正常了。


implementation 'com.android.support:appcompat-v7:28.0.2' → implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.android.support:design:28.0.2'  → implementation 'com.google.android.material:material:1.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2' → implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
...

3.各个class等文件里的import也进行了更改。


不得不说,这个一件迁移真的很方便,不然真的要改死。



如果出现部分迁移错误,请按照谷歌上的映射关系表:https://developer.android.google.cn/jetpack/androidx/migrate/artifact-mappings手动修改依赖和https://developer.android.google.cn/jetpack/androidx/migrate/class-mappings手动修改导包。有些第三方库爆红了可以去看看其源码或者更新日志,一般改下依赖就可以了。


参考文章:是时候迁移至 AndroidX 了!  


相关文章
|
前端开发 Android开发
Android 现有项目迁移到androidx
Android 现有项目迁移到androidx
256 0
Android 现有项目迁移到androidx
|
Android开发
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
1255 0
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
|
开发工具 Android开发
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(二)
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(二)
234 0
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(二)
|
API 开发工具 Android开发
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(一)
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(一)
255 0
【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )(一)
|
XML Java API
【解惑】Android Support 和 AndroidX
刚来这家公司时,正好赶上项目AndroidX迁移,踩了一些坑,记了些笔记,整理一下发一波~
583 0
|
4天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
6天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
8天前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
【10月更文挑战第35天】在数字化时代,安卓应用的开发成为了一个热门话题。本文旨在通过浅显易懂的语言,带领初学者了解安卓开发的基础知识,同时为有一定经验的开发者提供进阶技巧。我们将一起探讨如何从零开始构建第一个安卓应用,并逐步深入到性能优化和高级功能的实现。无论你是编程新手还是希望提升技能的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
6天前
|
存储 API 开发工具
探索安卓开发:从基础到进阶
【10月更文挑战第37天】在这篇文章中,我们将一起探索安卓开发的奥秘。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和建议。我们将从安卓开发的基础开始,逐步深入到更复杂的主题,如自定义组件、性能优化等。最后,我们将通过一个代码示例来展示如何实现一个简单的安卓应用。让我们一起开始吧!
|
7天前
|
存储 XML JSON
探索安卓开发:从新手到专家的旅程
【10月更文挑战第36天】在这篇文章中,我们将一起踏上一段激动人心的旅程,从零基础开始,逐步深入安卓开发的奥秘。无论你是编程新手,还是希望扩展技能的老手,这里都有适合你的知识宝藏等待发掘。通过实际的代码示例和深入浅出的解释,我们将解锁安卓开发的关键技能,让你能够构建自己的应用程序,甚至贡献于开源社区。准备好了吗?让我们开始吧!
20 2