android:enableJetifier=true 再学习

当我们遇到类似这种问题

js 复制代码
connectivity_plus:debugRuntimeClasspath` contains AndroidX dependencies, but the `android.useAndroidX` property is not enabled, which may cause runtime issues.
     Set `android.useAndroidX=true` in the `gradle.properties` 

我们一般会直接添加如下的配置 但是一直没有深究这两个属性的意义

js 复制代码
android.useAndroidX=true      
android.enableJetifier=true

android.useAndroidX=true 这个属性执行项目开启AndroidX

android.enableJetifier=true 的作用

js 复制代码
当启用该配置后,Gradle 会在构建过程中对所有第三方库(包括本地库和远程依赖)进行字节码转换:
把库中引用的 android.support.xxx 类自动替换为对应的 androidx.xxx 类。
把库的 build.gradle 中声明的旧版 Support 库依赖(如 com.android.support:support-v4)自动替换为 AndroidX 依赖(如 androidx.core:core)。

但是如果有如下情况还是需要手动去修改:

js 复制代码
Jetifier 主要处理字节码和依赖声明,但某些特殊情况可能转换失败:
第三方库中通过反射动态引用 android.support 类(如 Class.forName("android.support.v4.app.Fragment"))。
资源文件(如 XML)中硬编码旧版类名(如自定义 View 的全类名)。
此时需要手动修改,或联系库作者升级到 AndroidX 版本。
相关推荐
执明wa1 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder1 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
二流小码农2 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
用户69371750013843 小时前
从代码生产者到 AI 协作者:软件工程师的角色重构
android·前端·后端
GitLqr3 小时前
别在 Flutter 的 main() 里乱锁屏幕方向,小心 iPad 分屏功能被你搞没了
android·flutter·ios
sg_knight3 小时前
MySQL 存储过程详解:从入门到实战
android·数据库·mysql·database·dba·关系型数据库·db
爱笑鱼3 小时前
Binder(四):ioctl(BINDER_WRITE_READ) 之后,事务怎样到达目标进程?
android
AFinalStone3 小时前
Android 7系统休眠唤醒(二)开机全链路—BootROM到Launcher
android·电源管理·休眠唤醒
Mr YiRan3 小时前
Android NDK开发之统计到未被回收的图片
android