AndroidX 兼容包的时代

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的类文件

猜你喜欢

转载自blog.csdn.net/ShareUs/article/details/88085362