在敲代码的时候是没有报错的,但是在编译时,或者点击运行时,还没运行起来还在编译阶段时可能会报出一些异常来,如下:
这是什么错误啊,乱码,看不懂,这应该是我们的javac编译器在编译时遇到错误了,并显示出异常,但是它是用中文显示异常的,而Android Studio在显示编译异常时如果用的编码不支持中文,那么就会显示乱码了,我们可以添加参数告诉Android Studio使用一个支持中文的编码来显示编译信息,点击帮助菜单,并选择“编辑自定义VM选项”,如果是从来没点击过这个选项的话,会弹出如下对话框:
我们点击“创建”,然后它会自动打开这个文件,我们在这个文件中添加:-Dfile.encoding=UTF-8,如下:
这里面还有个链接,大家有时间的话还可以打开这个链接看看在这个文件里都可以配置些什么东西。
然后点击文件菜单,并选择“清除缓存/重启…”,然后会弹出一个对话框,如下:
我们就点击“清除并重新启动(R)”,然后Android Studio就会自动重新启动了,之后再编译时就能看到中文的编译错误信息了,如下:
这里解释一下这个错误,我使用了DataBinding功能,在布局文件中声明的Map的泛型只写了一个参数,如:Map<String>,因为是在xml文件中声明的,所以这个语法检查没这么强,并没有直接报错,AndroidStudio会自动生成绑定类,即自动生成一个Java的类,里面就会有Map<String>,在运行编译这个生成的Java类的时候检查到这里出错了,应该是两个泛型参数的,如:Map<String, String>。