Failed to resolve:com.android.support:appcompat-v7:报错处理

今天新建了一个项目,报出以上错误,特此记录。以下为报错内容:

Error: Failed to resolve: com.android.support:appcompat-v7:27.+
Install Repository and sync project
Show in File
Show in Project Structure dialog

一、原因分析:

这其实是编译工具冲突问题,项目所需要的编译工具版本和AS本地的版本不同所致,一般是本地版本低于项目所需版本。

1、我们先了解自己的电脑安装的SDK工具版本,点开SDK Manager图标,然后选中Updates就可以看到了

我的 sdk 工具版本就是24.4.1

2、清楚了自己的sdk 工具版本后,接下来我们继续查看版本,接下来是看sdk 构建工具(sdk Build-Tools)的版本,还是在sdk manager上操作,这次选中 Android SDK后,再在右边选中SDK Tools(只看打勾选项就行)

 

看了这张图,似乎就能明白些什么了对吧,你会发现,我这里是的 Android SDK Build-Tools (就是我前面一直提到的sdk 构建工具)版本是28,而Android SDK Platform Toors的版本是27,而我的SDK Tools才是24。很明显版本就低了,但这些并不会直接造成项目报错,看完这些数据,我们接着往下看

3.点开项目构建文件Gradle Scripts,再继续点击build.gradle(Module:app)ps:有两个名字相同的,选第二个,看下面代码的注释行就可以了

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27        // 使用版本27的SDK编译
    buildToolsVersion "27.0.2"  // 构建工具版本号为27.0.2,对应上图的SDK Build-Tools27
    defaultConfig {
        applicationId "com.ph.TestDzy180509"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    //远程依赖声明,这里我们着重来看appcompat-v7:27.+
    compile 'com.android.support:appcompat-v7:27.+'

    testCompile 'junit:junit:4.12'


}

二、解决方案

1、此为最简单方法:找到一个老项目,按照这个项目修改版本号就可以了,下面是我自己的

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "com.xx.xxxx"
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 6
        versionName "1.0.6"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    testCompile 'junit:junit:4.12'
    

}

问题解决,因为当你创建一个新的项目时,有gradle去帮你完成构建项目工作,那它自然是按你的最高sdk构建工具版本去构建项目,所以就会出现这样的问题,

2、这个问题可以通过修改project的gradle,添加maven { url “https://maven.google.com” }即可,如图 

allprojects {
    repositories {
        maven { url "https://maven.google.com" }  // 1
        jcenter()                                 // 2
        maven { url "https://jitpack.io" }
        // 1、2顺序不能颠倒,颠倒会报错:Error:Could not find common.jar (android.arch.core:common:1.0.0).
    }
}

加入以上代码,编译就可以了。
 

三、总结:其实,以上两种方案都是治标不治本,并不能从根本上解决问题,都要修改build.gradle文件才行,不能一劳永逸的解决问题。如果有朋友有治本方法,烦请告知。

 

参考文章: 特此感谢以下文章作者

 

1、Failed to resolve:com.android.support:appcompat-v7:报错处理  点击打开链接

2、Failed to resolve: com.android.support:appcompat-v7:27.0.1问题解决  点击打开链接

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值