Android AndroidX的迁移- https://www.jianshu.com/p/7dc111353328
迁移到 AndroidX 过程中遇到的各种问题-https://blog.csdn.net/github_35186068/article/details/83929124
-- 带你领略Android 架构组件的魅力- https://juejin.im/post/5c947ef9e51d455de73ac7a0
Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作 Android Jetpack.
老的 support 包被整合进了 Jetpack,例如上图 Foundation 模块的 AppCompat,整合进去之后,包名做了一下修改,全部以 androidx 开头。Android Studio 提供的迁移工具(Refactor > Migrate to AndroidX)可以将源码中的旧包名替换成新的,但是如果 Maven 依赖的产物还未迁移到 AndroidX 的话,还需要配置一个工具—— Jetifier,只需要在 build.gradle 中加上两行配置即可.
-- Google官方androidx
Google 2018 IO 大会推出了 Android新的扩展库 AndroidX,用于替换原来的 Android扩展库,将原来的android.*替换成androidx.*;只有包名和Maven工件名受到影响,原来的类名,方法名和字段名不会更改。官方早就推荐将support库迁移到androidx,因为后续support库不会再做更新。
其实只需要3.2版本的android studio,在菜单refactor中点击migrate to androidx即可,该向导会提示需要做的更新,包括 gradle Studio插件版本至少3.2.0 ; gradle 版本至少4.6
然后只需要在gradle.properties文件中添加如下语句
android.useAndroidX=true ; android.enableJetifier=true
最后在菜单refactor中点击migrate to androidx即可,studio会自动将import的类调整为androidx中对应的类,将dependencies中的依赖替换成androidx中对应的库。
遇到的问题:glide不兼容androidx,更新到4.8.0即可。butterknife、glide 等都已经适配了AndroidX。
api 'com.android.support:appcompat-v7:28.0.0' 变成了: api 'androidx.appcompat:appcompat:1.0.0'
从 API 28(Android 9.0,Pie)开始,Google 推荐开发者从原来的各种支持库转移到一个新版本的名为 AndroidX 的支持库。它相比老支持库有着无需操心版本控制、实时更新的优点。原有的支持库将被保留并且可以继续使用,但接下来所有新的支持都将发布在 AndroidX 上。
https://developer.android.com/jetpack/androidx/
-- Error:Execution failed for task ':transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/app/INotificationSideChannel.class
当AndroidStudio运行项目的时候出现编译错误:Error: Program type already present:android.support.v4.app.INotificationSideChannel,这意思是v4包冲突了。
首先,查找一下自己的文件里是否存在v4包重复的,搜索之后发现没有出现重复,针对这个问题查看了网上一些资料,发现这个问题是AndroidX版本引起的。有以下两种解决方法:
1、Refactor-->Migrate to AndroidX
2、向gradle.properties添加以下内容:
android.enableJetifier=true
android.useAndroidX=true
首先你的gradle版本至少为3.2.0以上,以及compileSdkVersion为28以上。 classpath 'com.android.tools.build:gradle:3.2.0+'
1。如果你是一个新项目,如果使用AndroidX相关依赖,需要在gradle.properties文件里添加配置:
android.useAndroidX=true
android.enableJetifier=true
2。如果你想使用AndroidX,但是之前的不迁移,可以这样配置:
android.useAndroidX=true
android.enableJetifier=false
-- Androidx INotificationSideChannel重复
Error:(207, 42) 错误: 无法访问Fragment, 找不到androidx.fragment.app.Fragment的类文件