1.运行Tools工具中的Generate JavaDoc报错
想将项目生成一个帮助文档,结果生成doc时(如下图所示),
报下面错误
错误: 编码GBK的不可映射字符
错误: 编码GBK的不可映射字符
* 璁剧疆SurfaceView鐨勭粦瀹氬叧绯?
解决方法
在生成DOC弹出的对话框中,在other command line argument中输入下面命令
-encoding utf-8 -charset utf-8
如下图所示
完美解决上述问题,成功生成了doc文档。
2.原理解释
我的android studio中所有的代码文档都是用utf-8进行编码的,java在编译时会将uft-8编码的代码转化为unicode编码存入内存中。
这里要注意理清一个概念,JavaDoc.
JavaDoc 是用以提取注释的工具,Jdk安装的一部分。
android studio gradle里的默认编译的编码是utf-8的,而javadoc却是使用的当前电脑环境中的默认编码,即是GBK。
如果我们用的是英文,那utf-8与gbk的英文编码方式都是一样的。但一遇到中文就会报上述错误了,因为中文用的是utf-8的编码,而javadoc却用了gbk的编码去转换中文,所以就无法转换从而报错。
注: GBK中文占两个字节,utf-8中文(常用)占三个字节
因为代码中的注释部分包含了许多中文,而javadoc是会去编译这些注释从而生成HTML的帮助文档的,所以就会出现上述的编码GBK转换错误的报错。
3.解决问题时踩过的坑
1.在app的build.gradle里添加代码
添加如下代码到build.gradle中
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
生成doc时依然报错,这个方案应该是指代码的编译,而不适用于doc生成。
2.更改项目的编码
如下图,我将Project Encoding的编译换成了utf-8.依然报错
本身我的文档就都是utf-8编码的,只不过之前这里的Project Encoding是显示的系统默认(即GBK)。这个方案也是跟1一样,不适用于doc生成。
---------------------
转自:https://blog.csdn.net/pigdreams/article/details/80370796