构建应用程序时出现BufferOverflowException

时间:2013-11-02 12:12:03

标签: android eclipse adt

每次我想运行我的Android应用程序时都会收到错误:

[2013-11-02 13:05:36 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2013-11-02 13:05:36 - **********] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.

我谷歌了但是没找到任何东西。我已将permsize设置为512m,Xms1024m和Xmx2048m。 我正在使用v22.0.0-675183。

.LOG:

!ENTRY com.android.ide.eclipse.adt 4 0 2013-11-02 13:05:36.597
!MESSAGE Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log             for stack trace.
!STACK 0
java.nio.BufferOverflowException
at java.nio.Buffer.nextPutIndex(Unknown Source)
at java.nio.HeapByteBuffer.putShort(Unknown Source)
at com.android.dex.Dex$Section.writeShort(Dex.java:818)
at com.android.dex.Dex$Section.writeTypeList(Dex.java:870)
at com.android.dx.merge.DexMerger$3.write(DexMerger.java:437)
at com.android.dx.merge.DexMerger$3.write(DexMerger.java:423)
at com.android.dx.merge.DexMerger$IdMerger.mergeUnsorted(DexMerger.java:317)
at com.android.dx.merge.DexMerger.mergeTypeLists(DexMerger.java:423)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:163)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:187)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:187)
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:780)
at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:593)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:726)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:321)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:396)
at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
at org.eclipse.core.internal.resources.Project.build(Project.java:124)
at com.android.ide.eclipse.adt.internal.project.ProjectHelper.doFullIncrementalDebugBuild(ProjectHelper.java:1057)
at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:147)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:855)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:704)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1047)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1251)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

13 个答案:

答案 0 :(得分:38)

我能够通过添加额外的行来构建我的问题项目:

sdk.buildtools=18.1.1

...到我的 project.properties 文件,该文件存在于项目文件夹的根目录中。所有其他方法对我来说似乎都失败了。

答案 1 :(得分:29)

尝试添加Android支持库:D https://stackoverflow.com/a/19803777/544265

答案 2 :(得分:14)

安装新的sdk后,项目文件下会有一个新文件夹“Android Dependencies”。如果右键单击并从构建路径中删除它,您将能够再次构建项目。

答案 3 :(得分:11)

我也遇到了同样的问题。只是,我已经卸载了SDK build 19并重新启动了eclicpse.hope,这有助于谷歌很快解决这个问题......

答案 4 :(得分:11)

我已经通过将项目构建目标设置为API 19来解决。

答案 5 :(得分:4)

右键单击您的项目> android工具> android支持库

希望这有助于:)

答案 6 :(得分:3)

在project.properties文件中,替换
目标=机器人 - ??

目标=机器人-19

答案 7 :(得分:3)

我刚刚从项目>中删除了 Android依赖项属性> java build path>库。   在我清理项目并运行它之后

答案 8 :(得分:2)

尝试手动删除build 19文件夹。

答案 9 :(得分:1)

我通过在sdk manager中安装 android sdk平台工具 sdk构建工具解决了我的问题

答案 10 :(得分:0)

尝试右键单击您的项目> android>项目构建目标>选择少于4.4的版本 并尝试清理项目。

它对我有用。 :)

答案 11 :(得分:0)

我已经解决了设置target = android-19或者必须匹配manifest下的targetSDk。 target = android在项目根目录下的project.properties下找到..

希望这个帮助...

答案 12 :(得分:0)

我用构建工具19.0.1解决了这个问题,并将项目构建目标解决了API 19。 使用构建工具19.0我有这个问题。