转: 错误: 编码GBK的不可映射字符 - Android Studio 生成javadoc文档时报错

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中

扫描二维码关注公众号,回复: 4330897 查看本文章
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

猜你喜欢

转载自blog.csdn.net/myjie0527/article/details/84705782
今日推荐