为什么升级个IDE要写篇文章记录下呢?
每次升级Android Studio
就会碰到一堆bug,网上一查遍地是踩坑篇,有已经被人踩过解决的,也有找不到解决方法,自己硬着头皮尝试的,就这就已经劝退不少想升级的伙伴。这次我也记录一下从 4.0 版本升级上来踩过的坑。
1. Android Studio 4.0.2 升级到 4.1.2 (噩梦版本)
几个月前的某一天,日常浏览Android Developers
时,看到Studio4.1.2
的新特性,一时兴起就更新了,然后就踩坑了。
Studio 插件全部丢失
Studio4.1
版本开始更换了插件目录,会导致插件丢失或者损坏。所以升级时候不用勾选升级插件,仅仅升级IDE,完了后重新安装插件吧。注意备份配置!注意备份配置!注意备份配置!(惨痛的经历就是当时我根本没想到会出现这种状况,只习惯性的导出了setting文件,然后就只能凭记忆重新找插件了)
很多插件不支持在4.1版本上使用了
之前几个好用的生成java模版代码的插件,都没办法使用了,也没找到替代插件,悲剧的以后只能自己手写[哭晕] ,太影响效率了
Gradle编译问题
在
Sync Project with Gradle Files
时,下载第三方依赖总会莫名其妙的失败,也没有找到谁有类似的经历,最后偶然发现把http改成https,就能正常下载了,有点神奇。用了一段时间项目切到
AndroidX
上,同时也维护Android Support
版本,git分支频繁切换后,有些类开始报红了,怎么治都不好,但是又不影响项目运行,慢慢的只当没看见了[捂脸],逼死强迫症。Build Project过程中下载第三方依赖报错
Could not HEAD ‘xxx.pom'. Received status code 502 from server: Bad Gateway
原因:Studio 的设置了代理,首先在setting -> Appearance & Behavior -> System Settings -> HTTP Proxy
中看下有没有设置代理,如果没有继续找一下项目的gradle.properties
文件或者/Users/用户名/.gradle/gradle.properties
中,去掉如下内容:
systemProp.https.proxyHost=mirrors.neusoft.edu.cn
systemProp.https.proxyPort=80
systemProp.http.proxyHost=mirrors.neusoft.edu.cn
systemProp.http.proxyPort=80
当然相对于这些缺点,studio 新特性还是挺好用的,最起码抽风的概率降低了。
2. Android Studio 4.1.2 升级到 4.2.1
2.1 Gradle面板中gradle所有命令不见了
解决方法:
设置 => 最下面Experimental => do not build gradle task xxx => 取消勾选 => 然后Rebuild
2.2 IDE默认使用内置open jdk环境,但是 4.2 的使用的默认版本是jdk 11,当场开发项目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升级后默认配置发生变化,会默认使用更高版本的jdk进行编译,故找不到该类,发生报错,所以我们只要把本地的jdk的编译版本改回1.8即可解决,修改路径如下:
file -> project structure -> sdk location -> jdk location
图中修改默认的JDK Location的路径即可
更多bug正在赶来的路上....