美文网首页
java.lang.ArrayIndexOutOfBoundsE

java.lang.ArrayIndexOutOfBoundsE

作者: 麦封 | 来源:发表于2018-07-11 17:15 被阅读0次

最近在项目中遇到了一个奇怪的问题,会在有些机型上出现数组越界的问题,而这个问题报在了原生的api里,下面是完整log日志

图1

源码报错的位置是在oncreate中读取savedInstanceState的时候恢复fragment的状态restoreAllstate

图2

在Fragmentmanager 中restoreAllState的实现

图3 图4

问题就出在这个bse.mIndex,其实我的项目里面根本就没有用到过fragment,但问题却出现在这里,但是我的项目是横屏,有可能是横屏的生命周期导致的问题,这也是我自己推测的,具体根本原因还请大神指点,至于解决办法,我采取了很暴力的美学方法,如下

图5

因为我的Activity就没有用到fragment,所以我在获取saveInstanceState之前,将fragment相关移除掉,

图6 图7

正是我们移除的那个字段,然后我们再看一下里面是如何处理的这个Parcelable p,

图8

很明白,直接返回了,也就不会往下执行,到此结束,虽然很暴力但是很完美,还是期望对这个问题有深刻理解的大神,可以讲讲这个问题出现的原因

相关文章

  • java.lang.ArrayIndexOutOfBoundsE

    最近在项目中遇到了一个奇怪的问题,会在有些机型上出现数组越界的问题,而这个问题报在了原生的api里,下面是完整lo...

  • java.lang.ArrayIndexOutOfBoundsE

    名字上看是数组下标越界错误,解决方法就是查看为什么下标越界。 如下: 12代表越界数组的下标, originalD...

网友评论

      本文标题:java.lang.ArrayIndexOutOfBoundsE

      本文链接:https://www.haomeiwen.com/subject/frfnxftx.html