《Android Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $》

  • 日志错误

Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
  • 出现的场景

1. 一种是所有接口都出现这个问题,一种是个别接口出现这个问题。

2. debug场景下能够正常使用,打正式版的包使用时只要跑接口就出现这个错误;

  • 分析

1. 百度过很多博客,大多数报的是json解析错误,使用gson解析错误。但是debug使用的时候是正常的,所以排除;

2. 也有说是传的数据由空格的原因,这个我也一一排查了。我获取的数据都 et.getText().toString().trim(); 处理过了,也排除;

3. 接口编写的问题我也查过,并没有任何问题,debug情况下是能够正常使用,所以排除;

4. 也有说是路径问题,用的是同一个路径,这个也排除;

5. 最后,唯一的不同是打包方式不一样。打包引起不一样的地方,那就只能是代码混淆的问题。出现第一条的时候排查了好久,发现混淆的代码也是没有问题,后来才发现对应这个接口的entity类,没有放到entity里面,导致混淆的时候出现无法解析的情况。修改即可使用。第二个场景是修改了包名,忘记更新混淆文件proguard-rules.pro里面的内容。

  • 解决

#---------------------------------实体类---------------------------------
##修改成你对应的包名(com.xxx.xxxx指的是包名)
 #实体类不参与混淆 com\xxx\xxxx\mvp\model\entity
-keep class com.xxx.xxxx.mvp.model.entity.** { *; }
-keep class com.jess.arms.widget.** { *; } #自定义控件不参与混淆
-keep class com.xxx.xxxx.mvp.ui.widget.** { *; } #自定义控件不参与混淆

1. 检查实体类位置是不是写对了;

2. 检查你的现在的包名是不是对得上proguard-rules.pro里面的包名。若不一样,打正式版时必然出现无法使用的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值