為什么升級個IDE要寫篇文章記錄下呢?
每次升級Android Studio就會碰到一堆bug,網(wǎng)上一查遍地是踩坑篇,有已經(jīng)被人踩過解決的,也有找不到解決方法,自己硬著頭皮嘗試的,就這就已經(jīng)勸退不少想升級的伙伴。這次我也記錄一下從 4.0 版本升級上來踩過的坑。
1. Android Studio 4.0.2 升級到 4.1.2 (噩夢版本)
幾個月前的某一天,日常瀏覽Android Developers時,看到Studio4.1.2的新特性,一時興起就更新了,然后就踩坑了。
Studio 插件全部丟失
Studio4.1版本開始更換了插件目錄,會導(dǎo)致插件丟失或者損壞。所以升級時候不用勾選升級插件,僅僅升級IDE,完了后重新安裝插件吧。注意備份配置!注意備份配置!注意備份配置?。☉K痛的經(jīng)歷就是當(dāng)時我根本沒想到會出現(xiàn)這種狀況,只習(xí)慣性的導(dǎo)出了setting文件,然后就只能憑記憶重新找插件了)
很多插件不支持在4.1版本上使用了
之前幾個好用的生成java模版代碼的插件,都沒辦法使用了,也沒找到替代插件,悲劇的以后只能自己手寫[哭暈] ,太影響效率了
Gradle編譯問題
在
Sync Project with Gradle Files時,下載第三方依賴總會莫名其妙的失敗,也沒有找到誰有類似的經(jīng)歷,最后偶然發(fā)現(xiàn)把http改成https,就能正常下載了,有點神奇。用了一段時間項目切到
AndroidX上,同時也維護(hù)Android Support版本,git分支頻繁切換后,有些類開始報紅了,怎么治都不好,但是又不影響項目運行,慢慢的只當(dāng)沒看見了[捂臉],逼死強(qiáng)迫癥。Build Project過程中下載第三方依賴報錯
Could not HEAD ‘xxx.pom'. Received status code 502 from server: Bad Gateway
原因:Studio 的設(shè)置了代理,首先在setting -> Appearance & Behavior -> System Settings -> HTTP Proxy中看下有沒有設(shè)置代理,如果沒有繼續(xù)找一下項目的gradle.properties文件或者/Users/用戶名/.gradle/gradle.properties中,去掉如下內(nèi)容:
systemProp.https.proxyHost=mirrors.neusoft.edu.cn
systemProp.https.proxyPort=80
systemProp.http.proxyHost=mirrors.neusoft.edu.cn
systemProp.http.proxyPort=80
當(dāng)然相對于這些缺點,studio 新特性還是挺好用的,最起碼抽風(fēng)的概率降低了。
2. Android Studio 4.1.2 升級到 4.2.1
2.1 Gradle面板中g(shù)radle所有命令不見了
解決方法:
設(shè)置 => 最下面Experimental => do not build gradle task xxx => 取消勾選 => 然后Rebuild
2.2 IDE默認(rèn)使用內(nèi)置open jdk環(huán)境,但是 4.2 的使用的默認(rèn)版本是jdk 11,當(dāng)場開發(fā)項目rebuild就直接報錯了
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:kaptOnlineDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
> java.lang.reflect.InvocationTargetException (no error message)
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException,
原因是:studio升級后默認(rèn)配置發(fā)生變化,會默認(rèn)使用更高版本的jdk進(jìn)行編譯,故找不到該類,發(fā)生報錯,所以我們只要把本地的jdk的編譯版本改回1.8即可解決,修改路徑如下:
file -> project structure -> sdk location -> jdk location

圖中修改默認(rèn)的JDK Location的路徑即可
更多bug正在趕來的路上....