解决android SDK编译器升级为19后引入老工程抛出Unable to execute dex: java.nio.BufferOverflowException的问题

问题

近期把SDK的编译器版本升级到了v19版本,然后尝试重新编译原来的工程代码并下载到真机上运行,结果发现可以编译但不能下载到目标机,查看控制台提示:


[- Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[- mydemo] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.

解决方法

注意:刚才试了以下,有两种解决办法,优先使用第一种,如果无效再使用第二种,第二种如果删除了dependence包还无效的话,需要重新reset sdk,不然eclipse就会记忆配置,以后该工程再也不帮你引入denpendence包了。reset sdk的方法是:打开个人文件夹->.android文件夹的东西全部删了。

方法一:


1、 项目工程中的AndroidManifest.xml文件,添加
 
  <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

把编译器使用v19

2、编辑project.properties文件,修改

# Project target.
target=android-19


方法二:

该方法有一定劣性!

1、右击你的工程->property

解决android SDK编译器升级为19后引入老工程抛出Unable to execute dex: java.nio.BufferOverflowException的问题_第1张图片


2、JAVA BUILD PATH -> Libraies窗口 -> remove掉android dependencies(重新编译后依赖包会重新包含进去)


解决android SDK编译器升级为19后引入老工程抛出Unable to execute dex: java.nio.BufferOverflowException的问题_第2张图片



3、在eclipse中clean下工程,插件会自动把依赖包重新包含


4、enjoy 


你可能感兴趣的:(解决android SDK编译器升级为19后引入老工程抛出Unable to execute dex: java.nio.BufferOverflowException的问题)