compileSdkVersion、buildToolsVersion、targetSdkVersion 、Failed to resolve:'com.android.support:ap
-
Failed to resolve:'com.android.support:appcompat-v7:28.+'
android { compileSdkVersion 28 buildToolsVersion "28.0.3" defaultConfig { 。。。 minSdkVersion 19 targetSdkVersion 28 。。。} 。。。}dependencies { 。。。compile 'com.android.support:appcompat-v7:28.+' 。。。}
在新建android studio项目时,经常会出现如上报错,这是因为本地com.android.support:appcompat-v7包不存在28+版本,位置如下,我本地最大是26
D:\Android\sdk\extras\android\m2repository\com\android\support\appcompat-v7
-
但是既然本地没有为什么默认build.gradle中会自动配置呢?
在androidstudio安装目录下查看build.gradle的默认配置如下:
默认配置build.gradle位置 或android-sdk\tools\templates\projects
C:android-studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
android {
<#if buildApiString?matches("^\\d+$")>${buildApiString}<#else>'${buildApiString}'#if>
buildToolsVersion "${buildToolsVersion}" //对应最大sdk构建工具版本 sdkbuild-tools
defaultConfig {
<#if !(isLibraryProject!false) && !(isInstantApp!false)>
applicationId "${packageName}"
#if>
minSdkVersion <#if minApi?matches("^\\d+$")>${minApi}<#else>'${minApi}'#if>
targetSdkVersion <#if targetApiString?matches("^\\d+$")>${targetApiString}<#else>'${targetApiString}'#if>
...
...}
发现对应的默认compileSdkVersion 和targetSdkVersion :buildApiString,其对应的sdk中的位置其实是
D:\Android\sdk\platforms 即sdk platforms最大版本
而Support appcompat包配置在C:android-studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\build.gradle.ftl
对应buildApi也是sdk platforms最大版本 所以会新建项目时自动生成的就是28+,
3、解决办法
(1)可以在如上位置修改默认值
(2)降低support:appcompat版本为本地存在版本26,但是
This support library should not use a different version (26) than the compile(28)
supportLibrary必须和compileSdkVersion相同,所以compileSdkVersion也要改为26
This support library should not use a lower version (26) than the targetSdkVersion (28)
targetSdkVersion的值是指创建的android项目使用哪个版本的api
compileSdkVersion:使用哪个版本的sdk进行编译
targetSdkVersion不能大于compileSdkVersion
所以targetSdkVersion改为<=26
(3)
在build.gradle(Project)中添加仓库
maven{
url "https://maven.google.com"
} 或添加 google() 如下:
allprojects { repositories { jcenter() google() }}
添加后可能会报错
The SDK platform-tools version (27.0.1) is too old to check APIs compiled with API 28
解决方式,更新sdktools
4、注释:
(1)查看安装的sdk工具版本 这里是24.4.1 可以更新 更新后26.1.1
(2)
查看sdk(构建工具版本)sdkBuild-Tools版本,
D:\Android\sdk\build-tools
因为当你创建一个新的项目时,gradle去帮你完成构建项目工作,那它自然是按你的最高sdk构建工具版本去构建项目,buildToolsVersion "28.0.3"
(3)
buildToolsVersion的版本需要>=CompileSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序;
更多相关文章
- Android 手势滑动,多点触摸放大缩小图片
- android 图片压缩的方法
- Android API Level对应Android版本一览表 到安卓10
- [Android实例] Android网络收音机项目(内含源码)
- 【边做项目边学Android】手机安全卫士05_1:程序主界面
- android SDK与ADT版本更新问题
- Android各版本及API对应关系,持续更新!
- Android 所有版本区别总结