Android Studio 升級到3.1.2問題小結

Android studio衝2.1版本升到3.1.2遇到好多問題,在這裏作一下簡單的總結,但願同道中人有則改之、無則加勉:html

首先:java

     在安裝完成後,須要對Gradle進行對應的升級,在升級過程當中會遇到「Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-3.3-all.zip'.」這樣的錯誤,重試了不少次都不行,後來重啓電腦,這個問題就解決了,不得不感嘆,仍是重啓大法好啊android

其次:api

     在Android studio 3.0中build gradle的時候遇到「Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html」這樣的錯誤提示,如圖:app

這裏出現錯誤的緣由是Android studio 3.0之後build.gradle中的關鍵詞compile、testCompile、androidTestApi 將被implementation、testImplementation、androidTestImplementation等關鍵詞替代,這裏只須要將build.gradle中對應的關鍵詞修改掉,從新編譯便可。oop

而後:gradle

      在編譯完成後,將app運行到模擬器上時,會遇到以下錯誤:ui

主要是由於我在工程裏的module依賴了butterknife的jar包,而jar裏面又用到了註解。在新的gradle版本里,須要寫新的groovy代碼來對每一個引用註解的地方單獨配置。而在以往的版本中,gradle會默認給每一個module都依賴一個annotationProcess,致使不少多餘的對annotationProcess的依賴。對應的解決方法以下:url

在相應的module的gradle文件中,使用javaCompileOptions:spa

defaultConfig {
        applicationId "com.breakloop.httpurlconnectiondemo"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        //添加了javaCompileOptions 
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true
            }
        }
    }
而後從新編譯運行到模擬器上便可