不管你喜不喜欢 androidX 它都来了

本着我踩的坑都要分享出来的精神写了今天文章。

com.android.support 系列的依赖报名已经不陌生了,为了兼容而出现的他们在更新到28时候谷歌官方宣布停止更新,原因就是谷歌爸爸不喜欢这个名字了!! 呵呵 玩笑,只是版本管理有些乱,开发中也经常会碰到各种compat 而且原来越多,所以谷歌开始规范支持包,androidX 孕育而生。

androidx 出现规范代码,但是产生一个过渡期,什么过渡期? support到androidx过渡,对于我们来说又是一顿查找替换。为什么查找替换,因为原来api类名不变的情况下,androidx报名全部发生变化。这导致同一个项目中androidx 和 support会产生冲突,常见错误如下:

Manifest merger failed : Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.0.0-beta01] AndroidManifest.xml:22:18-86
    is also present at [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory).
    Suggestion: add 'tools:replace="android:appComponentFactory"' to  element at AndroidManifest.xml:11:5-49:19 to override.

注意:这个错误基本上在后面开发中经常会遇见,这就是项目中同时使用了androidx 和 support 。

现在很多国外代码已经开始使用了androidx 了 ,例如 photoview google+ sdk等。
所以以后support肯定是要被淘汰的!!

首先看看依赖包变化,例如:

api 'com.android.support:appcompat-v7:28.0.0'

变成了:

api 'androidx.appcompat:appcompat:1.0.0'

其他包变化可以参照官方文档:

//  https://developer.android.com/jetpack/androidx/migrate

那么怎么过渡到androidx?

首先:
将项目中android support 包和引用都改成androidx,这就是前面说的查找替换。

然后:
项目中肯定有第三方依赖,而且现在很多依赖都是使用sopport 包,那么就必须保证

classpath 'com.android.tools.build:gradle:3.1.+'

那么android studio就提供了sopport转androix的能力;需要在gradle.properties 文件中加入配置:

android.useAndroidX=true
android.enableJetifier=true

上面工作完成后,那么恭喜你,你的项目已经进入androix时代了 。

如果对你有帮助麻烦点个赞哦 !! _

你可能感兴趣的:(Android)