Android Studio升级到3.4后的两个小坑
个人原创,转载请注明出处:https://www.jianshu.com/p/2b845a880700
时隔一年将AS升级到了3.4,在老项目上测试了一下,几个新功能都挺方便的,特别是在Project Structure里现在能很方便的更新依赖项。不过编译运行时出了两个小问题,一是模拟器启动时闪退,二是Gradle build时报错。
模拟器闪退
看了下Event log,发现报镜像目录时出现了中文乱码,于是猜测和文件目录名有关。如果模拟器镜像所在文件夹(.android)在"C:\Users{中文用户名}"下的话容易出这个问题。这时候可以将.android里的avd文件夹拷贝到不含中文目录的其他位置,再更改avd里镜像的ini文件(比如pixel3就是Pixel_3_API_xx)里的path路径改为当前路径。
不过这样改的弊端是新建的模拟器镜像位置还是在原来的位置,建一个改一个太麻烦了,所以推荐的方法是新建一个系统环境变量ANDROID_SDK_HOME,值就是你想改的新的路径,然后将原.android文件夹剪切到该路径下,这样以后新建的镜像就在新路径下了(顺便帮C盘瘦个身^^)。
Gradle报错
一升到3.4 as就会提示你升级gradle到5.1.1,不过我用该版本build的时候会报transformDexWithInstantRunSlicesApkForDebug这个错误,看上去似乎是和Instant Run有关,关了Instant Run后果然不报错了。不过Instant Run还是很方便的,不想舍弃,于是又到Overflow上查了一下,发现有人通过升级gradle版本解决了,于是尝试升级gradle到5.4版本,成功!Overflow上的大神还是牛批啊!
最后再鄙视一下google,都3.x版本了as还是不能改新建项目时的默认gradle版本,只能先建再改,更新了那么多功能这点小问题都解决不了么?