AndroidX库和一般库的详细对比以及迁移中遇到的坑总结
本文同步发布在Github:Android Studio版本、Gradle版本、Build Tools版本、AndroidX对照详细解答
一、AndroidX库和一般库的详细对比
官方有好几个文件提出了如何迁移到AndroidX库,具体如下:
-
AndroidX概览: https://developer.android.google.cn/jetpack/androidx
-
AndroidX和旧的依赖库对照表: https://developer.android.google.cn/jetpack/androidx/migrate
-
AndroidX各个库的版本号: https://developer.android.google.cn/jetpack/androidx/versions
【Tips】:如果你不知道用哪个库,也不知道用哪个版本的话,可以直接看下面这个图:
但是官方的那几个链接看起来还不是很舒服,想找的东西不好找,有时候你想用一个库接找半天才找到,所以我就把AndroidX和普通的依赖库做成了一张对比表,方便大家查阅和使用。如下图所示(图片很大,需要双击放大才可以看得更清楚,或者直接看原图):
AndroidX库和一般的support库版本完整对比图1.pngAndroidX与Support库及其他库的对比:
AndroidX库和一般的support库版本完整对比图2.pngAndroidX特有的库:
AndroidX库和一般的support库版本完整对比图3.png不属于AndroidX的库(Design库,没想到基本上常用的Support库都放到AndroidX中了,只有Design库没有放进去,不知道为啥?而且依赖库的包名都不一样?):
二、遇到的问题汇总
1、android dependency 'androidx.core:core' has different version for the compile (1.0.0) and runtime (1.0.1) classpath.You should manually set the same version via DependencyResolution
我把gradle-wrapper.properties
里面设置的gradle版本号设置成4.10.2,即:distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
,然后重新编译一下项目。
2、Configuration on demand is not supported by the current version of the Android Gradle plugin since you are using Gradle version 4.6 or above. Suggestion: disable configuration on demand by setting org.gradle.configureondemand=false in your gradle.properties file or use a Gradle version less than 4.6.
Android Studio版本是3.1.3,,gradle-wrapper.properties
里面设置的gradle版本号是distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
,然后编译就出了这个错误。
我把根目录的build.gradle
设置成classpath 'com.android.tools.build:gradle:3.3.1'
,然后重新编译一下,就OK了。