问题
赶了个早集,周一刚到工位坐下测试便反馈打包失败,日志显示的是 java.nio.file 包下的 Files.readAllLines
方法抛出异常,这读取的文件到底有什么特别之处吗?
排查
进一步查看日志,原来是在读小米广告 SDK 1.9.2 版本里面的混淆文件
,刚好是上周更新的小米 SDK!
把这个混淆文件复制出来查看,有一点特别的就是文件内容存在乱码
。
本地读取此文件再看看,不出意外问题复现了~
这里的日志明显多了,根据堆栈信息,我们基本知道就是编码问题,和上述的猜想一致。
问题很明朗,乱码部分属于注释,删除乱码的注释就能解决了~
A:小米 SDK 竟然也存在这种基础错误
B:代码都是人写的
C:外包写的
MalformedInputException
Malformed:畸形的
package java.nio.charset;
/**
* Checked exception thrown when an input byte sequence is not legal for given
* charset, or an input character sequence is not a legal sixteen-bit Unicode
* sequence.
* 当输入字节序列对给定字符集不合法,或者输入字符序列不是合法的16位Unicode序列时引发的检查异常。
*
* CharacterCodingException: 发生字符编码或解码错误时引发的检查异常。
* @since 1.4
*/
public class MalformedInputException
extends CharacterCodingException
{
private static final long serialVersionUID = -3438823399834806194L;
private int inputLength;
public MalformedInputException(int inputLength) {
this.inputLength = inputLength;
}
public int getInputLength() {
return inputLength;
}
public String getMessage() {
return "Input length = " + inputLength;
}
}