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
在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+,
(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
(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程序;