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

1.运行Tools工具中的Generate JavaDoc报错

想将项目生成一个帮助文档,结果生成doc时(如下图所示),

这里写图片描述
报下面错误

错误: 编码GBK的不可映射字符
        //鑾峰彇鍒板緟瑙f瀽鐨勫浘鐗?

解决方法

在生成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生成。

发布了92 篇原创文章 · 获赞 68 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/pigdreams/article/details/80370796