自从把AS工具升级到4.0版本,并安装Flutter开发插件后,AS工具就没那么好使了。经常会出现很多莫名奇妙的问题:找不到Class定义(明明有定义),找不到导入文件,java文件显示xml内容,A文件显示成B文件内容等等。 不知道是Flutter插件的原因,还是V4.0版本的bug。总之,混乱不堪,非常影响开发效率。
下面介绍一下几个主要问题的解决方法:
1、文件类型显示不对,本来每个java文件前面应该显示”J”图标的却显示“C”图标
解决方法; 点击右下角的小人头像
将Power Save Mode 勾掉,然后重启AS,再次打开的时候所有Java文件签名都变成”J”图标。
2、Java文件的内容显示为xml 形式的内容或者乱码
分析:这个是AS的 bug,因为用其他工具打开都没有这种错误显示
解决方法:用记事本打开后另外保存UTF-8格式的文件,然后再从AS里面看时就正常了
3、Java A文件的内容却显示Java B文件的内容
分析:这种显示内容与文件内容不符的现象,显然是AS之前哪里错了,譬如还没来得保存或者同步中,PC被强制关机或者断电了,这有可能导致AS缓存不正确。
解决方法:一般情况下,用户点击左上角的“File”,选择“InvalidateCaches.\Restart“就能清除老的缓存并重启就可以解决。但笔者前后清理了五六次仍然如此,说明那个选项可能自身也有bug。
最终的解决方法是:手动关闭AS, 并找到AS的缓存目录并全部删除,然后重启AS。
笔者PC上的AS的缓存路径:C:\Users\用户名\.AndroidStudio4.0\system\caches
4、扩展
这个问题不属于AS问题,但也是最近发生事情,所以为了记录、学习,也一并总结出来。
比较工具”Beyond Compare”也会有缓存的问题, 经常会遇到 “这个授权密钥已被吊销“的弹框,如下图:
通常遇到这个问题会想着license过期了、无效了,需要输入新的license。 我也尝试输入几次新的license,但是没使用几天就又会出现这个问题。
最终解决方法是:每次出现这个dialog后不再去找新的license,而是到Beyond Compare的缓存目录下清除所有缓存文件,并重启。
缓存目录通常是:
C:\Users\用户名\AppData\Roaming\Scooter Software\Beyond Compare 4\