在针对API 8时,Android dex在构建时给出了BufferOverflowException

时间:2013-12-17 23:52:07

标签: android

我只在命令行上运行。我尝试过不同的stackoverflow答案建议的各种修补程序(添加Android支持库,将project.properties设置为使用18.1.1,但它们似乎都没有解决问题。我尝试过两个版本{{ 1}}和19的版本18.1.1

以下是platform-tools

的输出
android list targets

以下是我使用创建项目的命令:

Available Android targets:
----------
id: 1 or "android-8"
     Name: Android 2.2
     Type: Platform
     API level: 8
     Revision: 3
     Skins: WQVGA432, QVGA, WVGA854, WQVGA400, WVGA800 (default), HVGA
     ABIs : armeabi
----------
id: 2 or "Google Inc.:Google APIs:8"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 2
     Description: Android + Google APIs
     Based on Android 2.2 (API level 8)
     Libraries:
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: WQVGA400, WVGA854, HVGA, WQVGA432, WVGA800 (default), QVGA
     ABIs : armeabi
----------
id: 3 or "android-19"
     Name: Android 4.4
     Type: Platform
     API level: 19
     Revision: 1
     Skins: WQVGA432, QVGA, WVGA854, WXGA720, WSVGA, WXGA800, WQVGA400, WVGA800 (default), HVGA, WXGA800-7in
     ABIs : armeabi-v7a
----------
id: 4 or "Google Inc.:Google APIs:19"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 1
     Description: Android + Google APIs
     Based on Android 4.4 (API level 19)
     Libraries:
      * com.google.android.media.effects (effects.jar)
          Collection of video effects
      * com.android.future.usb.accessory (usb.jar)
          API for USB Accessories
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: WQVGA400, WVGA854, WSVGA, WXGA800-7in, WXGA720, HVGA, WQVGA432, WVGA800 (default), QVGA, WXGA800
     ABIs : armeabi-v7a

当我android create project \ --target 1 \ --name Foo \ --path Foo \ --activity Foo \ --package com.Foo 进入目录并使用cd时,我会立即获得其他问题中描述的ant build

BufferOverflowException

请注意,我也运行UNEXPECTED TOP-LEVEL EXCEPTION: java.nio.BufferOverflowException at java.nio.Buffer.nextPutIndex(Buffer.java:519) at java.nio.HeapByteBuffer.putShort(HeapByteBuffer.java:315) at com.android.dex.Dex$Section.writeShort(Dex.java:818) at com.android.dex.Dex$Section.writeTypeList(Dex.java:870) ,实际的命令就是这个(删除了目录):

adb -verbose debug

1 个答案:

答案 0 :(得分:0)

看来答案here对我来说适得其反。只需删除19的修订Build-tools,这是我找到解决问题的唯一方法。

这可能是API 8特有的问题,但我没有使用较高的API 9进行测试。