jar 转dex 报bad class file magic (cafebabe) or version错误

    在做动态加载时有一步是要将jar 转化为dex,用到了dx工具。之前项目在Eclipse上生成jar包转化为dx很正常,但是最近把项目迁移到Android Studio上生成的jar在转化dx报了bad class file magic (cafebabe) or version (0033.0000)错误

192944_byvQ_1786928.png

在网上搜了一圈,得到的原因是生成jar包的jdk和进行dx化的jdk版本不同,也给出了解决办法,将java文件版本降低:

javac -source 1.6 -target 1.6  xx.Java

但是对我不适用,因为我这有上百个java文件需要降低版本,而且Android Studio上jdk版本是最新的1.8.因此推测从dx使用的jdk入手会有解决方法。我的dx工具是从网上下载的,以前只知道怎么用,不知道里面都有哪些东西,zip包里只包含了dx.bat,dex.jar。dx.bat中有一句:

set jarfile=dx.jar

而且后面的命令就是调用dx.jar,由于电脑上只安装了jdk1.8,通过环境变量获取到java版本也必是这个,唯一的可能就是dx.jar太旧,在sdk目录下的build-tools里面找到最新版本的dx替换,测试一下,正常!

而且之后在Stack Overflow上也找到了同样的解决办法:

195104_7UoM_1786928.png

 

转载于:https://my.oschina.net/u/1786928/blog/1512356

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值