
问题
赶了个早集,周一刚到工位坐下测试便反馈打包失败,日志显示的是 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;
}
}
文章讲述了在使用java.nio.file包的Files.readAllLines方法读取小米广告SDK1.9.2版本混淆文件时遇到的乱码问题,经排查发现是由于编码不匹配导致的MalformedInputException异常,解决办法是删除乱码注释。
396

被折叠的 条评论
为什么被折叠?



