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 } } }
而後從新編譯運行到模擬器上便可