jdk高版本编译低版本jar导致的运行错误.md

本文介绍了在使用高版本JDK编译的jar包运行在低版本Android环境中时,遇到的'conversion to dalvik format failed with error 1'错误。通过分析错误信息,发现是JDK版本兼容性问题。解决方案包括调整引入jar包的编译版本或修改Android项目的JDK版本。重点强调了正确分析问题和熟练使用开发工具的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,前言:

  • 分析问题:

当问题出现时,通过得到的线索理智,清醒地分析,正确地定位问题原因,比鲁莽冲动的急着着手解决,有时来得更事半功倍;

  • 工具的使用

Eclipse等 IDE的各种配置,页签,按钮,快捷键等等工具的熟练程度,能帮助开发者发现问题,解决问题,提高开发效率,例如常用的console,logcat,problems,debug,Ddms,堆栈列表等等

2,情景:

在依赖于wade-mobile源码包运行app时,发生的错误,记录一下,之前也发生过,但是没有解决,一直以为是jar包重复依赖冲突导致的的问题(其实重复冲突报错是这个:Dultple jar…)
App在编译时没有错误,运行时却报错,所以是个running err,一直以consele红色和Problems页签上的提示 (conversion to dalvik format failed with error 1)为依据来搜索解决bug,都是说包冲突的问题;在老大的提示下,看了console中的详细提示(可能是我的前端思维原因,很多时候我不太喜欢深入参考console里的内容),一行一行的检索,检索熟悉得内容,发现:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version
以此搜索,结果迅速定位问题原因:发现是JDK编译版本问题:这其实是jdk版本兼容性问题。我的新工作区间引入的jar包编译环境(是1.8)要高于同事之前编译jar时所用编译版本(比如1.6)。要解决这个问题,就必须保证你android项目的编译jdk版本要高于等于你引入jar包的编译jdk版本,然后重新编译就好了;
有两种解决方案
1、低于等于你android的jdk版本来重新编译你要引入的jar包(不推荐)

如果引入的jar是开源框架,你要去修改jar的编译版本比较麻烦,所以不推荐

2、修改android项目的jdk版本。

可以修改android项目的jdk版本,具体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值