MPAndroidChart数据异常NegativeArraySizeException: -2_Panda.W的博客-程序员秘密_mpandroidchart错乱

技术标签: java  MPAndroidChart  android  

          今天用折线图出现了这个异常,信息如下:

java.lang.NegativeArraySizeException: -2
	at com.github.mikephil.charting.utils.Transformer.generateTransformedValuesLine(Transformer.java:178)
	at com.github.mikephil.charting.renderer.LineChartRenderer.drawValues(LineChartRenderer.java:549)
	at com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:278)
	at android.view.View.draw(View.java:16193)
	at android.view.View.updateDisplayListIfDirty(View.java:15189)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3605)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3585)
	at android.view.View.updateDisplayListIfDirty(View.java:15149)
	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281)
	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287)
	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:2615)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2067)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:902)
	at android.view.Choreographer.doCallbacks(Choreographer.java:714)
	at android.view.Choreographer.doFrame(Choreographer.java:648)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:888)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:148)
	at android.app.ActivityThread.main(ActivityThread.java:5468)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:671)
NegativeArraySizeException,翻译过来就是不合适的数组长度,一番查找原来是因为数据没有按照x轴排序,在设置数据之前按照x轴排序即可
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_32536991/article/details/118365671

智能推荐

离散化两种写法_君_君的博客-程序员秘密

离散化当我们对一些数的数值进行操作、维护时(线段树合并,扫描线,树状数组等)有时候我们发现一些很尴尬的情况:1<=aja_jaj​<=1e9,而1<=n<=1e5数的个数比数的值域范围小得多,我们最多也就n个不同的数,我们可以把这些数按从小到大重新安上新的编号1~n例如1 2 1e9 1e8 1e7变成 1 2 5 4 31 2 2 5 4变成1 2 2 4 3有时候我们排序时还要去重方法一:用STL库 #include<algorithm> 去重

第20周-计算表达式的值--循环_kewlgrl的博客-程序员秘密

问题及代码:/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:words.cpp *作 者:单昕昕 *完成日期:2015年1月8日 *版 本 号:v1.0 * *问题描述:计算表达式的结果,注意精度小于1e-6的项不再计算在内。*程序输入:无。*程序输出:表达式的结果。*/

VUE-CLI4:使用VUE脚手架创建项目_算云烟的博客-程序员秘密

一、概述VUE-CLI是VUE官方推出的用来构建VUE项目的脚手架配置工具基于vue.js,用于自动生成vue.js+webpack的项目模板它有以下三个组件CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create 、vue serve 、vue ui 等命令)CLI 服务:@vue/cli-service是一个开发环境依赖。构建于 webpack 和 webpack-dev-server 之上(提供 如:serve、build 和 inspect

列举几个常用的Linux,请大家列举一个Unix或Linux程序员最常用到的一些命令_weixin_39585463的博客-程序员秘密

如果想查看命令的详细说明,请自己看man。下面是man各小节的内容:1 用户命令。2 系统调用。3 库函数。4 特殊文件(设备和网络接口)。5 文件格式。6 游戏和演示。7 系统环境、表格和宏。8 系统管理和相关命令。apropos 依据所给关键字查找相关的命令和系统调用格式:apropos keyword例:查找与ftp相关的命令和系统调用$apropos ...

【面试知识点】计算机网络_Rhine404的博客-程序员秘密

程序员面试中常会问到的关于计算机网络方面的内容,不定期更新内容。

CArchive和Serialize即通过串行化文档的写入与读取_songshu1007的博客-程序员秘密

CArchive和Serialize即通过串行化文档的写入与读取 标签: 杂谈 之所以要这样通过串行化(CArchive和Serialize)的方式进行文件读去而不用CFile的方式进行文件的读取是因为串行化方式除了可以使用文件保存对象之外,还可以通过网络,串口,传输对象!!例如这里使用打开键打开一个格式为txt的文件,并将文件内容显示在当前的View里面:void CTextVi

随便推点

js工具函数之将网络图片url地址转换为base64格式_一键写代码的博客-程序员秘密

1、封装工具函数,将url地址,转换为base64格式输出 function getBase64(url, callback) { //通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 createElement() 创建 <img> 省去了 append(),也就避免了文档冗余和污染 var Img = new...

前后端分离开发中动态菜单的两种实现方案__江南一点雨的博客-程序员秘密

关于前后端分离开发中的权限处理问题,松哥之前写过一篇文章和大家聊这个问题:Spring Boot + Vue 前后端分离开发,权限管理的一点思路但是最近有小伙伴在学习微人事项目时,对动态菜单这一块还是有疑问(即不同用户登录成功后会看到不同的菜单项),因此松哥打算再来写一篇文章和大家聊一聊前后端分离开发中的动态菜单问题。1. 一个原则做权限管理,一个核心思想就是后端做权限控制,前端做的所...

Inheritance(C++中的继承笔记)_inherritance vs code_韩子冉的博客-程序员秘密

继承的意义1.父类中的数据成员也是子类中的一部分;2.父类中定义的功能也是子类中的一部分;Extension (扩展)and Contraction(收缩)1.2.使用继承的原因1.代码的重复利用。2.思想的重复利用。继承和派生其实“派生”,跟“继承”是一回事,只是看它们的角度不一样而已比如下面这段程序,我们可以说:类Base派生了类Derived,也可以说类Derived继承了类Baseclas...

教程:一起学习Hystrix--Hystrix处理异常机制(降级方法)_hystrixbadrequestexception_java_龙的博客-程序员秘密

目录 降级 异常传递 惊喜 Fallback(降级)     我们可以通过增加一个 fallback (回退)方法在hystrix命令实现优雅降级,如果主命令失败,hystrix可以获取一个默认值或者值集合。我们可能想为更多的可能失败的h...

【Vue踩坑】今天的我又给vue坑惨了,发现this.$set就能解决_$set数据延迟_一颗甜橙树的博客-程序员秘密

前言:今天在做项目的时候,遇到了一个问题,就是修改数组里面的值,假如数组里面有2-3个值,选择tabActive的时候,渲染没有出现问题,一旦我数组里面的值超过4个时,渲染就出现问题了排查了很久,发现点击的时候,数组也是正常取值的,为啥会有bug呢?其实就是Vue的渲染机制:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的。解决方式: methods: { // 调用方法:Vue..

Picasso加载本地文件不显示问题处理_picasso 加载本地磁盘文件_she_cool_的博客-程序员秘密

Picasso加载本地文件不显示问题处理最近在写项目中如何设计图片库,随便选择了Glide(4.8.0)和Picasso(2.71828)作为切换对象,然后在Picasso遇到了一些坑,记录以下:简单说明以下:Glide和Picasso在传入图片路径的时候,大致都支持以下格式:网络地址:如http://xxxxx.xxx.xxx/xxx.png本地文件:/sdcard/image/xx...

推荐文章

热门文章

相关标签