MpAndroidChart坑之release发布版本动画不起作用

上一次在解决MpAndroidChart分组柱状图问题后,本来以为问题都解决了。今天发布release版本给客户后,自己测试突然发现动画没了。

MpAndroidChart坑之release发布版本动画不起作用图表类的界面没有动画总感觉少了点东西,界面的得分也大打折扣。感觉趁着客户没发现尽快解决问题重新发布版本。力求给客户一个

最好的体验效果。毕竟咋们搞应用开发的最重要的就是界面和界面体验了。

首先得找到问题的原因所在,后面解决就简单了。

先看设置动画的方法:

barChart.animateXY(3000, 3000);
明明已经调用了这个方法,平时测试也都是没问题,就是在发布release版本就动画无效。

(每次遇到问题都是学习的机会。随着工作经验的积累这种经历已经很难得了。要好好把握这种学习机会。)


查看animateXY源码发现改方法并没有将时间属性保存,而只是单纯的启用了一次动画。所以之后就算刷新

数据其实也不会再出现动画效果了。这也是开发过程中发现的有时动画出现没3秒就结束的原因所在,当时没管还以为

只是偶然。(因为我的BarChart初始化配置和数据刷新是分开的,由于数据刷新是异步的,动画启动后,数据还在请求,

所以设置数据后,其实动画已经执行了一段shij)

会不会release版本动画无效就是这个原因,但是release版本动画无效是必现,debug版本是偶现,这也说不通啊。


既然找到问题可能的原因了。解决办法自然也就有了。先解决这个问题bug再说吧。

很简单,上面的方法是在初始化BarChart的时候调用的,只要改到数据请求成功后,刷新数据时调用启动动画方法即可。

barChart.setData(barData);
barChart.invalidate();
barChart.animateXY(3000, 3000);

然后发布release版本,最初的问题依然还在。

研究了半天,想到以前解决的一个问题也是类似的问题,就是debug版本可以使用的API到了release版本就不能调用了。

那肯定就是跟代码混淆有关系了。查看项目混淆文件proguard-project.txt发现确实没有给MPAndroidChart增加不需要混淆

的包和类。于是去查看官方demo,发现也没有。那就只能自己来了。查看源码发现该图表库的代码都是在com.github.mikephil包

下。那么就把整个把都增加避免混淆试试,在proguard-project.txt加入两行

-dontwarn com.github.mikephil.**
-keep class com.github.mikephil.**{ *; }

重新发布版本安装后动画总算是起作用了。


MpAndroidChart坑之release发布版本动画不起作用