Failed to resolve:com.android.support:appcompat-v7:報錯處理

低-調發表於2017-10-29

         你在使用android studio時是否也出現過上圖的報錯,你還在為它的出現煩惱?沒問題,看了本文章,我確保你會順利解決掉它並會很驕傲的認為這只是一個小case級別的報錯。我們進入正題吧,先來說下什麼時候會出現這種錯誤:

1.當你在用別的電腦上的android studio編寫一個專案時,然後copy下來,又在自己電腦上的android studio 上匯入該專案時會報錯(兩臺電腦上安裝的android studio版本不一樣)

2.自己的android studio SDK平臺工具的版本太低,然後在不瞭解專案構建檔案(build.gradle檔案)的前提下,點開了SDK Manger更新了專案構建工具(SDK Build-Tools)的版本

看完上面兩種情況,其實都可以發現它們的共同點,那就是版本問題,所以上述的兩種情況就用同一種解決辦法就可以了,多簡單

具體解決方案:

1.既然是版本問題,那就的先去了解自己的電腦安裝的SDK工具版本,點開SDK Manager圖示,然後選中Updates就可以看到了

這裡我的 sdk 工具版本就是26.1.1了

2.清楚了自己的sdk 工具版本後,接下來我們繼續檢視版本,接下來是看sdk 構建工具(sdk Build-Tools)的版本,還是在sdk manager上操作,這次選中 Android SDK後,再在右邊選中SDK Tools(只看打勾選項就行)

看了這張圖,似乎就能明白些什麼了對吧,你會發現,我這裡是的 Android SDK Build-Tools (就是我前面一直提到的sdk 構建工具)版本是27,而我的SDK Tools才是26,

很明顯版本就低了,但這些並不會直接造成專案報錯,看完這些資料,我們接下來再看一張截圖

3.點開專案構建檔案Gradle Scripts,再繼續點選build.gradle(Module:app)ps:有兩個名字相同的,選第二個,看下面程式碼的註釋行就可以了

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27                // 使用版本27的SDK編譯
    buildToolsVersion "27.0.0"          // 構建工具版本號為27.0.0  對應上圖的SDK Build-Tools27
    defaultConfig {
        applicationId "com.example.haha.myapplication"
        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'
    })
    compile 'com.android.support:appcompat-v7:27.+'     
 //上面一行是遠端依賴宣告,這裡我們著重來看appcompat-v7:27.+
    testCompile 'junit:junit:4.12'
}

我們來分析下appcompat-v7:27.+

上面我們查到我們的sdk工具版本是26,這裡的遠端依賴包的版本是27,那麼我們只需要將把版本減低到和sdk工具版本相同就ok啦!
apply plugin: 'com.android.application'

android {
    compileSdkVersion 26         //修改
    buildToolsVersion "27.0.0"
    defaultConfig {
        applicationId "com.example.haha.myapplication"
        minSdkVersion 19
        targetSdkVersion 26        //修改
        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'
    })
    compile 'com.android.support:appcompat-v7:26+'  //修改
    testCompile 'junit:junit:4.12'
}
問題解決,因為當你建立一個新的專案時,有gradle去幫你完成構建專案工作,那它自然是按你的最高sdk構建工具版本去構建專案,所以就會出現這樣的問題,到這裡你可能會覺得,臥槽,就只有最後那一段是有用的,還這麼簡單,其實前面給出的鋪墊看完加自己的理解,會收穫更多!如有錯,請多指教哈!
這裡重新補充一下:改完了!一定要點選 SYNC進行同步!SYNC !SYNC!重要事情那就說3遍,
或者點選 圖下所示 的  Try Again
                     



相關文章