compileSdkVersion、buildToolsVersion、targetSdkVersion 、Failed to resolve:'com.android.support:appco

  1. Failed to resolve:'com.android.support:appcompat-v7:28.+'compileSdkVersion、buildToolsVersion、targetSdkVersion 、Failed to resolve:'com.android.support:appco_第1张图片

    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

  2. 但是既然本地没有为什么默认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}'

    buildToolsVersion "${buildToolsVersion}"  //对应最大sdk构建工具版本  sdkbuild-tools

    defaultConfig {

    <#if !(isLibraryProject!false) && !(isInstantApp!false)>

    applicationId "${packageName}"

    

        minSdkVersion <#if minApi?matches("^\\d+$")>${minApi}<#else>'${minApi}'

        targetSdkVersion <#if targetApiString?matches("^\\d+$")>${targetApiString}<#else>'${targetApiString}'

       ...

...}

发现对应的默认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}.+" />

对应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

compileSdkVersion、buildToolsVersion、targetSdkVersion 、Failed to resolve:'com.android.support:appco_第2张图片

4、注释:

(1)查看安装的sdk工具版本 这里是24.4.1 可以更新 更新后26.1.1

compileSdkVersion、buildToolsVersion、targetSdkVersion 、Failed to resolve:'com.android.support:appco_第3张图片

compileSdkVersion、buildToolsVersion、targetSdkVersion 、Failed to resolve:'com.android.support:appco_第4张图片

(2)

查看sdk(构建工具版本)sdkBuild-Tools版本,

D:\Android\sdk\build-tools

compileSdkVersion、buildToolsVersion、targetSdkVersion 、Failed to resolve:'com.android.support:appco_第5张图片

因为当你创建一个新的项目时,gradle去帮你完成构建项目工作,那它自然是按你的最高sdk构建工具版本去构建项目buildToolsVersion "28.0.3"

(3)

buildToolsVersion的版本需要>=CompileSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序;

 

 

 

你可能感兴趣的:(Android,android,studio)