python报数组越界_【问题汇总】列表数组越界的问题
遇到了一个诡异的问题,ListView发生数组越界(偶尔会),程序崩溃。
错误信息如下:
W/dalvikvm( 5176): threadid=1: thread exiting with uncaught exception (group=0x40015568)
E/zhe800_android( 5176): Invalid index 2, size is 0
E/zhe800_android( 5176): java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
E/zhe800_android( 5176): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
E/zhe800_android( 5176): at java.util.ArrayList.get(ArrayList.java:311)
E/zhe800_android( 5176): at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:225)
E/zhe800_android( 5176): at android.widget.AbsListView.obtainView(AbsListView.java:1424)
E/zhe800_android( 5176): at android.widget.ListView.makeAndAddView(ListView.java:1755)
E/zhe800_android( 5176): at android.widget.ListView.fillUp(ListView.java:704)
E/zhe800_android( 5176): at android.widget.ListView.fillGap(ListView.java:650)
E/zhe800_android( 5176): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:3422)
E/zhe800_android( 5176): at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:2920)
E/zhe800_android( 5176): at android.os.Handler.handleCallback(Handler.java:587)
E/zhe800_android( 5176): at android.os.Handler.dispatchMessage(Handler.java:92)
E/zhe800_android( 5176): at android.os.Looper.loop(Looper.java:130)
E/zhe800_android( 5176): at android.app.ActivityThread.main(ActivityThread.java:3703)
E/zhe800_android( 5176): at java.lang.reflect.Method.invokeNative(Native Method)
E/zhe800_android( 5176): at java.lang.reflect.Method.invoke(Method.java:507)
E/zhe800_android( 5176): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
E/zhe800_android( 5176): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
E/zhe800_android( 5176): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 5176): FATAL EXCEPTION: main
E/AndroidRuntime( 5176): java.lang.IndexOutOfBoundsException: Invalid index 2, size is 0
E/AndroidRuntime( 5176): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
E/AndroidRuntime( 5176): at java.util.ArrayList.get(ArrayList.java:311)
E/AndroidRuntime( 5176): at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:225)
E/AndroidRuntime( 5176): at android.widget.AbsListView.obtainView(AbsListView.java:1424)
E/AndroidRuntime( 5176): at android.widget.ListView.makeAndAddView(ListView.java:1755)
E/AndroidRuntime( 5176): at android.widget.ListView.fillUp(ListView.java:704)
E/AndroidRuntime( 5176): at android.widget.ListView.fillGap(ListView.java:650)
E/AndroidRuntime( 5176): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:3422)
E/AndroidRuntime( 5176): at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:2920)
E/AndroidRuntime( 5176): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime( 5176): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 5176): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime( 5176): at android.app.ActivityThread.main(ActivityThread.java:3703)
E/AndroidRuntime( 5176): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 5176): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime( 5176): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
E/AndroidRuntime( 5176): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
E/AndroidRuntime( 5176): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 197): Force finishing activity com.tuan800.tao800/.activities.CategoryDealActivity从错误日志看,没有定位到具体的问题所在。
跟踪ListView的源码,可以看出来是与Adapter绑定的数据源存在数组越界。
因为此时,可能会有两个甚至多个线程同时修改数据源。
导致这个问题的发生。
参考资料
python报数组越界_【问题汇总】列表数组越界的问题相关推荐
- python报错及解决办法汇总
python报错及解决办法汇总 matplotlib 'gbk' codec can't decode byte 0x9a in position 37: illegal multibyte sequ ...
- python numpy array转置_详解Numpy数组转置的三种方法T、transpose、swapaxes
Numpy是高性能科学计算和数据分析的基础包,里面包含了许多对数组进行快速运算的标准数学函数,掌握这些方法,能摆脱数据处理时的循环. 1.首先数组转置(T) 创建二维数组data如下: 进行矩阵运算时 ...
- 二维数组删除_「leetcode」数组:总结篇!(一文搞懂数组题目)
数组理论基础 数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力 也就是说,想法很简单,但实现起来 可能就不是那么回事了. 首先要知道数组在内存中的存储方 ...
- java 数组 算法_常见算法总结 - 数组篇
1.给定一个数值在1-100的整数数组,请找到其中缺少的数字. 找到丢失的数字 利用byte数组的1或0标记该数字是否被删除,例如byte数组下标为0的数值为1的话,代表数字1存在 public st ...
- java数组 初始化_用Java初始化数组
java数组 初始化 具有使用C或FORTRAN等语言进行编程的经验的人熟悉数组的概念. 它们基本上是一个连续的内存块,每个位置都是某种类型:整数,浮点数或您所拥有的. Java中的情况与此类似,但有 ...
- vue数组刷新_详解VUE 数组更新
1.数据方法分类: (1)原数组改变 push pop unshift shift reverse sort splice (2)原数组未变,生成新数组 slice concat filter 对于使 ...
- java定义对象数组初始化_怎么定义对象数组 JAVA中怎么初始化对象数组?
java类怎样定义数组对象数组 在c++编程中,怎么定义对象数组的指针? JAVA中怎么初始化对象数组? java中怎么创建对象数组?比如我创建了一个学生类Sclass Student{ } 类中怎么 ...
- python list超出范围_错误:列表索引超出范围Python(Error: List Index out of Range Python)...
错误:列表索引超出范围Python(Error: List Index out of Range Python) 我已经查看了所有错误以找到解决方案,但我找不到可行的解决方案! 我得到列表索引超出范围 ...
- python 矩阵元素赋值_对numpy中数组元素的统一赋值实例
Numpy中的数组整体处理赋值操作一直让我有点迷糊,很多时候理解的不深入.今天单独列写相关的知识点,进行总结一下. 先看两个代码片小例子: 例子1: In [2]: arr =np.empty((8, ...
- python两个二维数组加法_对二维数组的多个列进行Numpy平均
首先,在我看来,你根本没有平均列的平均值,你只是一次平均两个数据点.在我看来,你最好不要使用reshaping数组,这样你就有了一个可以直接提供给mean的Nx2数据结构.如果列数不太兼容,可能必须先 ...
最新文章
- linux动态库替换,不要使用 cp 替换正在使用中的Linux 动态库
- 获得客户端的时区(get client-side time zone by JS)
- Docker:Redis启动命令
- 如何通过 Tampermonkey 快速查找 JavaScript 加密入口
- Entity Framework 4.1 (强转)
- SPI-TOUCHP调试(2440a-wince5)
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(八):MyBatis分页功能实现
- windows开发——配置pthread.h头文件
- 配置nessus服务在kali中开机自启动
- java成员方法tostring_Java 工具类-toString
- 低智商社会,娱乐至死,2书推荐,世界12大理论,
- 基于Springboot+MyBatisPlus+Vue前后端分离大学生毕业论文答辩系统
- 卑微的我,喜欢遥远的你
- 在IE浏览器访问网址时显示证书错误,导航已阻止
- 开心网辅助程序--开心网争车位助手正式发布(含源码)
- wi7计算机桌面删除,win7系统删除桌面右键多余选项
- 1324. Print Words Vertically**
- 壹佰大米时代公司研究报告
- python编写电子菜单_python 写三级菜单
- 基于时间序列AR模型的PHM预测