欢迎光临Software MyZone,有问题可留言或到站点论坛发帖,争取第一时间帮忙解决 || 站点论坛:火龙论坛 || 淘宝小店:应小心的易淘屋 【欢迎大家提建设性意见】

【Developer Log】ProGuard扰码:ClassFormatError

欢迎热爱编程的朋友们参与到cocos2d-x编程中,为了给大家提供良好的交流环境,网站以开启QQ群
Software MyZone:66202765(群号,欢迎加入,若满,请加1群)
Software MyZone 1群(2dx):286504621
Software MyZone 2群(山东):204954191
Software MyZone【Java群】:162865493
【加群请写:Software MyZone或者是firedragonpzy】
淘宝店:【应小心的易淘屋】初次开店,大家多多支持……
群论坛:【火龙论坛】正试运营阶段,欢迎大家多提些建设性意见……
群问答:【火龙问答】正试运营阶段,欢迎大家多提些建设性意见……
摘自:http://blog.csdn.net/flowingflying/article/details/51036039

我的digitalocean推广链接:https://www.digitalocean.com/?refcode=65dfdb158f1a,Everyone you refer gets $10 in credit,从此链接注册,你将获得10美元。

在一个web项目,扰码后运行发现tomcat回复500,而且给出了Java.lang.ClassFormatError的错误。然后给了某个类某行(1042),而那个类也就大概一百行,根本无法定位。

如果不进行扰码,是没有问题。这说明不是代码逻辑问题,而在于扰码问题。代码有异常捕获,没有捕获到这个异常。在代码中加入log,看看代码的执行情况,发现语句在user.getPhone(),而且返回的500异常多了信息:

java.lang.ClassFormatError: LVTT entry for … in class file … does not match any LVT entry.

这个报错,和跟踪到user.getPhone()是符合。在网上查找解决方法:

参考1:http://stackoverflow.com/questions/9651703/using-proguard-with-android-without-obfuscation/13877518#13877518

参考2:https://sourceforge.net/p/proguard/bugs/462/

看来这是ProGuard的一个bug,还有bug号(见参考2)。在参考1中给出:Add !code/allocation/variable is workaround for proguard bug when -dontobfuscate is set to your –optimizations,即在proguard的配置文件中增加:

-optimizations !code/allocation/variable

或者在图形工具中给出:

问题解决。

Tags: ,

发表评论