Dx bad class file magic (cafebabe) or version (0033.0000) 导致 NoClassDefFoundError 的问题

在做一个二维码扫描的app , 在项目中需要添加so 文件,以及配套的 *.jar 文档 . 由于项目是远程合作共同开发的 , 项目整体进展很好,等扫码功能解决之后, 他那边同步code编译死活不行, 领导急着要看初版app 的应用进展,这哥们儿,急爆了, 于是我们下午通过远端桌面,找到了以下错误.

使用eclipse ant 打包dex时出现,
执行 第四步 将class文件打包生成classes.dex文件: 命令的时候出现错误

rouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com...class
...while processing com...class
21 warnings
no classfiles specified

在这里插入图片描述
连接logcat 运行报NoClassDefFoundError 错误. 查看libs 包该加的包一个不少,clean 了几次,仍然不行,巨晕.
网上搜索之后发现了一些解决办法.

Google 了一番, 大致显示的原因:
是引用的Jar包在使用javase 编译时,使用的Java SE 1.7 版本,而引入之后的开发环境Java SE1.6 比较低, Android SDK 版本 所支持的Java SE 5 , 6 不支持1.7 从而导致打包进入apk 文档, 会提示 NoClassDefFoundError , 类找不到错误。

原因找到了, 解决办法也就出来了,

解决办法一(推荐):

查看目前所使用的Android sdk 版本 ,或者查找所引用的java jar 所提示使用的版本, 升级目前所使用的版本, 最好再升级一下java SE 版本 记得在Properties 中选择 java Compiler 之后 配置环境变量, 再项目中选择 Fix properties 。再试一下。

解决办法二:

找到所使用jar 的源码, 如果不麻烦的话,自己使用目前的java se 重新编译class 文档,毕竟目前的java SE与Android SDK版本是匹配的。

总结:

平时不注意这些细节,一般就是安装Java SE之后,Android SDK 也是有提示更新就直接更新。
虽然不常见,但是既然出现了,就记一笔。

查资料遇到的:

http://www.informit.com/articles/article.aspx?p=1966023
http://stackoverflow.com/questions/24662801/bad-class-file-magic-or-version
paypal/PayPal-Android-SDK#147

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值