当前位置: 首页 > 知识库问答 >
问题:

Android dex在构建时提供了一个

胡元忠
2023-03-14

当编译一个特定的Android项目时,并且仅在我的Windows机器上,我会在dex期间获得java.nio.BufferOverflowException。在使用Eclipse和Ant时都会出现这个问题。

使用Ant时的输出是:

...
  [dex] Pre-Dexing C:\MyProject\libs\android-support-v4.jar -> android-support-v4-5f5341d3c1b10a79d7d93f9c1e64421e.jar
  [dex] Converting compiled files and external libraries into C:\MyProject\bin\classes.dex...
   [dx]
   [dx] UNEXPECTED TOP-LEVEL EXCEPTION:
   [dx] java.nio.BufferOverflowException
   [dx]     at java.nio.Buffer.nextPutIndex(Buffer.java:499)
   [dx]     at java.nio.HeapByteBuffer.putShort(HeapByteBuffer.java:296)
   [dx]     at com.android.dex.Dex$Section.writeShort(Dex.java:818)
   [dx]     at com.android.dex.Dex$Section.writeTypeList(Dex.java:870)
   [dx]     at com.android.dx.merge.DexMerger$3.write(DexMerger.java:437)
   [dx]     at com.android.dx.merge.DexMerger$3.write(DexMerger.java:423)
   [dx]     at com.android.dx.merge.DexMerger$IdMerger.mergeUnsorted(DexMerger.java:317)
   [dx]     at com.android.dx.merge.DexMerger.mergeTypeLists(DexMerger.java:423)
   [dx]     at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:163)
   [dx]     at com.android.dx.merge.DexMerger.merge(DexMerger.java:187)
   [dx]     at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
   [dx]     at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
   [dx]     at com.android.dx.command.dexer.Main.run(Main.java:230)
   [dx]     at com.android.dx.command.dexer.Main.main(Main.java:199)
   [dx]     at com.android.dx.command.Main.main(Main.java:103)

BUILD FAILED
C:\Users\Jaap\android-sdks\tools\ant\build.xml:892: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:894: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:906: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:284: null returned: 2

使用Eclipse时,消息会更短,但类似:

[2013-11-01 14:29:44] APK file is not created for Project: 
[2013-11-01 14:29:46 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2013-11-01 14:29:46 - MyProject] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.

共有1个答案

琴刚豪
2023-03-14

不需要将构建工具降级到18.1.11,这个问题在构建工具19.0.1中得到了解决。

如果由于某种原因不能使用19.0.1,那么:

确保AndroidManifest.xml中Android:targetSDKVersion的值与project.properties中的target=Android- 匹配。如果这两个值不相同,则使用构建工具版本19.0.0进行构建将在BufferOverflowException中结束。

从这篇文章的评论中也有一些迹象表明,您需要至少以19(android-19)为目标。如果您的目标<19,请留下评论,如果此解决方案也有效。

 类似资料:
  • 问题内容: 我只是熟悉Apache JackRabbit。我已经完成了一些用于文档管理的多用户存储库。 如果有人同时使用它们,您能回答这些问题吗? ModeShape是否以某种方式链接到JBoss?我对JBoss AS或任何其他JBoss工具没有太多经验。我看到了对tomcat的支持,但是有很多JBossy的东西 文档说将来的发行版应该具有UI集成,这还有很长的路要走吗?它将是什么样的UI集成?是

  • 我需要在一个代码块中使用流中的'n'项,然后完成,本质上是: 在我的情况下,我不能将签名更改为返回而简单地;实际上,我必须抛开流中的一些元素(而不是简单的逻辑)--以便为下游消费者做好准备,而下游消费者不需要知道这是如何发生的,甚至不需要知道这是如何发生的。 这个问题是关于“不做任何事”lambda的。 JDK中是否存在“Do Nothing”使用者,如“Do Nothing”函数?

  • 当我发射时 我明白了 我无能为力。我试图pip3卸载东西,但我得到了相同的消息(错误堆栈略有不同)。我能做什么?我应该烧掉电脑然后重新启动一台新的吗?python工作得很好。 完整堆栈:

  • 我创建了一个简单的应用程序来测试过滤列表及其在相应的源列表更改时的行为。我也想测试更新更改,所以我创建了的。它比创建额外的类(如Person)更快更简单,这些类具有可观察的字段。 我在测试中发现了一个奇怪的错误: 和之间的区别在于后者定义了一个提取器,因此它接收更新事件。在处理update事件的过程中,本机代码引发了异常。为了使示例代码不出错,我应该考虑什么? 我已经将println插入到谓词测试

  • 问题内容: 据我所知,JPA本身提供了所有闪亮的功能,例如ORM,JPQL,实体关系映射等。但是我真的不明白,为什么人们在JPA之上使用Hibernate或Toplink。 Hibernate提供了JPA本身没有的哪些功能? 问题答案: JPA只是一个规范。Hibernate和TopLink是该规范的实现。 而且,JPA规范有点弱,它仅提供Hibernate和TopLink之类提供的功能的子集。有

  • Hazelcast支持地图条目的生存时间有类似的方法 我的问题是,Hazelcast和是否支持条目的生存时间? 我在文件ISet和IList中找不到 Mathod应该设置