android stduio重装后android系统库引入全部飘红的问题解决方法

项目场景 :

window10系统重装后,重装了java环境和android stduio


问题描述:

结果项目下android系统库全部飘红
android stduio重装后android系统库引入全部飘红的问题解决方法


原因分析:

一开始以为是gradle的原因,各种clean build,rebuild,clear cache and restart,一通操作后还是一样,检查了jdk,sdk环境配置目录,一切都正常,究竟是什么原因呢,最后才发现,原来是sdk manager下只引入了sdk30的版本,也就是android R的系统库和源码,其他版本的sdk一概没引入,但是正常来说,引入一个版本的sdk应该也可以啊,错就错在我在app module下的build.gradle,设置的compile sdk是29,也就是必须引入sdk29的库,其他库是可选的,不会影响编译,到这里就明白啦,赶紧把sdk 29的库安装一下,顺便把其他版本的也安装了,我这边是只安装到android 4.4,因为我设置的min sdk版本是19,所以低于19的我这边就不引入了,即使引入了也没啥用其实,安装完毕后,赶紧去看下是否还飘红, 结果很让人失望,还是一样红通通的一片,包括R文件也是,最后再尝试下最终解决办法,重启android stduio,结果管用了,红的一片都没有了


解决方案:

因为设置的compile sdk是29,所以双击shift,搜索sdk manager,将android Q 29的系统库和源码一并安装,其他版本可选,建议也一并安装了,直到安装到设置的min sdk大小即可,向上兼容则安装到target sdk大小即可,安装完毕后重启android stduio,大功告成

这里顺便提下,compileSdkVersion, minSdkVersion 和 targetSdkVersion以及buildToolsVersion的区别
compileSdkVersion:sdk编译版本,即项目采用哪个版本的sdk进行编译,也就是sdk manage下android platforms安装的那些版本的sdk库
minSdkVersion:应用运行支持的最小sdk版本,我项目设置的是19,对应android4.4系统
targetSdkVersion:应用运行支持的最高sdk版本,我项目设置的是29,对应android10.0系统,截至2020.11.10,目前最高可设置为30,即android 11.0系统(R)
buildToolsVersion:指定项目构建工具的版本,如28.0.3,有更新的版本,Android Studio会进行提示
com.android.tools.build:gradle:gradle插件版本,一般与android stduio版本一致,例如我使用的android stduio版本是4.1.0,那么buildToolsVersion则设置为4.1.0
前三者的大小范围:minSdkVersion (lowest possible) <= targetSdkVersion == compileSdkVersion (latest SDK)