在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重启后,又出现了删掉的那两个包,运行还是会报相同的问题,怎么彻底解决这个问题?