Unable to execute dex: java.nio.BufferOverflowException.解决办法
异常提示:
[2014-01-16 09:27:35 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2014-01-16 09:27:35 - tab_demo] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2014-01-16 09:27:35 - tab_demo] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
错误原因:
出现这个错误是因为项目中了引用了两个相同的jar包。
解决办法:
我们只需要将相同jar文件中重复的一个去除即可,详细步骤是:右键项目——Build Path——Configure Build Path...——Libriaries,然后我们在Libraries中将出现的相同jar文件去除一个,点击ok即可修复项目异常,通常我都是直接将Android Private Libraries删掉就行了,但是这样做只是临时性的修复,每当我重启eclipse的时候,eclipse就会自动再载入一次相同的jar文件,重新触发异常,所以大家也可以试试楼下评论的方法:卸载掉19版本的build tools,安装18.1.1及以下版本的build tools。
右键选择项目,选择Build Path——Configure Build Path...,然后在弹出框中选择:Java Build Path——Libraries,最后将Android Dependencies和Android Private Libraries移除(remove)掉即可。 我遇到这种问题的时候,Android Dependencies和Android Private Libraries里面都没有我项目所需的库,所以我remove掉之后不需要重新添加jar包,但是如果你的Android Dependencies和Android Private Libraries里面有项目所需的库的话,需要你重新引入,否则项目会报错,jar引入:右键选择lib中的jar文件选择Add Build Path即可。