Android 现有项目迁移到androidx

简介: Android 现有项目迁移到androidx

前言

我在全新项目中用过androidx,也做过老项目迁移到androidx,所以,我想表达的是androidx其实没那么神秘,也没那么多坑,时至今日也一年多过去了,基本趋于稳定,未来也是大势所趋,所以,迁移是迟早的事。


何为androidx

androidx其实是对Support Library的一次整合升级,即我们常用的v4包、v7包等,这些包最开始是做向下兼容的,但是现如今向下兼容的版本(targetSdkVersion)已经太低了,比如7、9、13等,现在都是android4.4版本19起步了,所以向下兼容已经需要了,不可能还有适配android2.3的,而且还加了很多新东西,比如v7包还加入了recyclerview,所以基于种种,官方来了一次整合升级,并且以后的重心也在androidx上,v4v7慢慢也会不维护了。


开始迁移

Refactor > Migrate to AndroidX

image.png


迁移之前会提示备份,默认勾选,看自己需求。


然后就是修改命名包名什么的,因为以前是android.support.*下面的,迁移之后变成androidx.*。support包有的,androidx也都有。


接下来就是解决报错了。


ERROR: Could not determine artifacts for androidx.appcompat:appcompat:1.0.0: No cached version available for offline mode

没有appcompat包,注意查看app下build.gradle中dependencies下是否存在,存在,Try Again,不存在可手动添加基础包:


implementation 'androidx.appcompat:appcompat:1.1.0'


然后Try Again即可。


这时候运行试试,能跑起来,但是可能会报错:


java.lang.BootstrapMethodError: Exception from call site #0 bootstrap method


查看log,报错指向:


ButterKnife.bind(this);


莫非是ButterKnife没适配androidx? 查看ButterKnife文档,原来是接入方式发生了改变,需要加以下代码:


android {
  ...
  // Butterknife requires Java 8.
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}


Try Again即可。



至此迁移完毕,其实也就是升级了下库而已。



目录
相关文章
|
1月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
109 1
|
1月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
93 2
|
1月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
138 0
安卓项目:app注册/登录界面设计
|
2月前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
11天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
39 6
|
20天前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
39 2
|
2月前
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
第一个安卓项目 | 中国象棋demo学习
|
1月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
2月前
|
JavaScript 前端开发 Android开发
让Vite+Vue3项目在Android端离线打开(不需要起服务)
让Vite+Vue3项目在Android端离线打开(不需要起服务)
|
2月前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。