Android Studio 3.2升級後的編譯問題解決辦法
2018年9月24日,Android Studio千呼萬喚終於放出了3.2正式版,博主趕緊下載了安裝包升級到最新版,每次AS升級都會帶來各種各樣的驚喜(大坑),這次不出所料也出現了幾個編譯問題,逐個想辦法解決後記錄如下,供各位朋友參考。
一、AS3.2升級完畢後,Android Studio跳出下面一個提示框,說是為了充分發揮新特性的優勢,建議開發者把Gradle升級到4.6。
單擊“Update”按鈕讓AS自動下載更新太慢了,實在等不了這麼久,還是按照以下步驟手動更新了:
1、手工下載Gradle4.6並解壓,下載地址是http://downloads.gradle.org/distributions/gradle-4.6-all.zip。將下載的壓縮包解壓到本地目錄,比如解壓到D:\Android\gradle-4.6
2、開啟Android Studio,依次選擇選單“File”——“Settings”——“Build, Execution, Deployment”——“Gradle”,選中“Use Local gradle distribution”,然後輸入Gradle4.6的解壓目錄。配置介面如下圖所示:
3、開啟專案的build.gradle檔案,把“classpath”的值從“com.android.tools.build:gradle:3.1.2”改為“com.android.tools.build:gradle:3.2.0”。
二、build.gradle修改完畢,然後重新編譯專案。注意AndroidManifest.xml不能有minSdkVersion,否則會報錯。不管是普通模組還是依賴模組,都要刪除minSdkVersion的相關節點描述,也就是把下面的uses-sdk整個節點去掉。
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" />
三、重新編譯成功,本以為萬事大吉,誰料接下來打包APK檔案時又報錯了,提示“org.apache.http.conn.ConnectTimeoutException: Connect to d29vzk4ow07wi7.cloudfront.net:443”。仍然開啟專案的build.gradle檔案,在“google()”這行下面新增“mavenCentral()”,同時把“jcenter()”改為“jcenter{url "http://jcenter.bintray.com/"}”,注意兩處repositories節點下面都要修改,也就是改成下面這樣:
buildscript { repositories { google() mavenCentral() jcenter{url "http://jcenter.bintray.com/"} } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() mavenCentral() jcenter{url "http://jcenter.bintray.com/"} } }
接著重新編譯,重新打包APK安裝包就正常了。