又快一年沒有使用AS了,正好要查看一個Android項目代碼,干脆升級到新版試試看新變化,舊版本為3.1.2,目前最新版本為3.4.2,AS的升級是很簡單的直接update等待即可.
升級完了,打開GIT下載的項目,啟動重新編譯,額額額,出現了編譯錯誤,無法編譯通過,關鍵是沒有詳細的錯誤提示,“error:failed link file resources”資源文件無法找到。
這個問題通常出現為資源文件出現了問題無法正常使用,可能是layout中使用的資源被刪除了或者是文件名錯誤,或者是資源格式錯誤等等,具體是什么錯誤呢,這里沒有給出詳細提示.
后來發現AS一直提示升級Gradle,好吧每次升級AS好像都要升級Gradle,那就升級吧,提示升級到Gradle5.1.1,OK升級,關於Gradle的升級方法有很多種,如果能直接update成功最好,如果失敗了,可以直接到官網下載相應的版本解壓到AS安裝目錄下的Gradle下即可.
gradle安裝參照:android studio gradle 兩種更新方法更新
升級后記得給AS重新指定gradle,選擇“use local gradle distribution”.我是手動下載的版本5.4(AS3.4.2要求gradle最低版本5.1.1,由於最新版本已經到了5.5這里使用5.4穩定版)
查看項目的build.gradle,更新到新版本,一般是和AS使用同一個版本號,如下圖紅色部分.
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { mavenCentral() google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.4.2' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' } } allprojects { repositories { mavenCentral() google() jcenter() maven { url 'https://www.jitpack.io' } } } task clean(type: Delete) { delete rootProject.buildDir }
更新后重新編譯,依然是“error:failed link file resources",不過這次出現了詳細的錯誤提示:
很多很多,有資源文件丟失的,layout文件缺失的,有多語言配置在默認語言strings里未設置的等等,按照提示一個一個把錯誤改正.再重新編譯就好了.
這樣一圈下來又是幾個小時,似乎每次升級AS都會出現編譯不通過的情況,不知道google什么時候能把AS升級Gradle升級做到向下兼容,不然就項目升級新版AS始終是個麻煩問題.
這也難怪IdeaUI java開發還是使用Maven構建的比較多,至少每次升級沒有發現需要來回改動源碼的情況,看來gradle還需要再健壯穩定些才能更好的推廣,畢竟穩定兼容還是比較重要的.