这几天学习安卓照着书上写过几个小程序,有时候代码eclipse提示没错,但是一运行就会弹出
这样的错误,console控制台上文字为:[2014-10-20 08:48:51 - Sz4.22] Dx
trouble writing output: already prepared
[2014-10-20 08:48:51 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2014-10-20 08:48:51 - Sz4.22] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
第一次遇到这样的错误时,我照着书检查了几遍代码,也没看出个所以然,后来根据提示Check the Eclipse log for stack trace.查logcat,太菜,看不懂。然后我就试着把项目delete掉,重新建,结果OK了,我也没管为什么。
今天写程序时,又是这样的错误我想都没想delete掉项目,重建,依然不行
[2014-10-20 08:48:51 - Sz4.22] Dx
trouble writing output: already prepared
[2014-10-20 08:48:51 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2014-10-20 08:48:51 - Sz4.22] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2014-10-20 09:04:59 - Sz4.22] Dx
trouble writing output: already prepared
[2014-10-20 09:05:00 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2014-10-20 09:05:00 - Sz4.22] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
然后我又逗比的检查了几遍代码,确认没错后,就不知道该怎么办了,度娘了几遍后,可以通过去除依赖包 Android Dependencies,在eclipse中右键这个文件夹,在Build Path选项中选择 remove it from build path的方法解决。
如图:
至于为什么,就我所理解SDK版本升级时,会在你的项目下建立一个依赖包 Android Dependencies,而需要的其他文件你没有下载。
对于remove屌那两个文件后,需要注意“我遇到这种问题的时候,Android Dependencies和Android Private Libraries里面都没有我项目所需的库,所以我remove掉之后不需要重新添加jar包,但是如果你的Android Dependencies和Android Private Libraries里面有项目所需的库的话,需要你重新引入,否则项目会报错,jar引入:右键选择lib中的jar文件选择Add Build Path即可。”
参考:http://blog.csdn.net/zhufuing/article/details/18354491