更新小米广告 SDK 我的插件闪退了!

文章讲述了在使用java.nio.file包的Files.readAllLines方法读取小米广告SDK1.9.2版本混淆文件时遇到的乱码问题,经排查发现是由于编码不匹配导致的MalformedInputException异常,解决办法是删除乱码注释。
摘要由CSDN通过智能技术生成

在这里插入图片描述

问题

赶了个早集,周一刚到工位坐下测试便反馈打包失败,日志显示的是 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;
    }
}

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值