Unable to execute dex: java.nio.BufferOverflowException

在4.3的环境下导入一个2.3.3环境下开发的demo,然后直接运势时发现了这个异常: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.


错误原因:

项目中了引用了两个相同的jar包。


解决办法:

在网上找到5种解决办法如下:

解决以上问题有以下几种方法:

方法一:

Eclipse->Project->去掉Build Automatically->Clear ->Build Project->Build Automatically,关闭Eclipse,再打开(无法解决)

方法二:

更新ADT插件,删除workspace目录下的.metadata目录,(没尝试)

方法三:

在你的项目下某个文件夹中有一个后缀为*.APK的文件,删掉,重启Eclipse即可。(没有此文件)

方法四:

原因是有重复的。jar被引用,可以查看你的build 
path,尤其是Android Dependencies一定有重复引入的.jar包,解决的方法是在libs删除重复的jar即可。(查看也没有重复引入的jar包)

方法五:

在项目中,有一个类的包名和引用的jar包中的类和包名一致,我用的是jar包中的类,所以工程中的这个类就是重复引用的,删除工程中重复引用的类后,成功打包启动。希望各位同学注意这个小问题。(没有这个问题)

方法六:

通过 eclipse IDE 工具的 project -->clean 运行后,可以执行mvn install命令通过 IntelliJ IDEA 工具的 Bulid-->Make Project ,Rebulid Projdec 运行后,可以执行mvn clean ,package命令(太麻烦,没尝试)

结果以上6中方法都不能解决我的问题,真正的解决办法:

去掉导入项目后生成的Android Private Libraries和Android Dependences两个包即可:

可行的解决办法:

选择Build Path——Configure Build Path...,然后在弹出框中选择:Java Build Path——Libraries,最后将Android Dependencies和Android Private Libraries移除(remove)掉即可。如果有需要用到的jar包,再重新add to build path就行了

后续问题:

当关闭eclipse重启后,又出现了删掉的那两个包,运行还是会报相同的问题,怎么彻底解决这个问题?






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值