При составлении конкретного проекта Android, и только на моей машине Windows, я получаю `Ява.НИО.BufferOverflowException во время от Декс. Проблема возникает как при использовании Eclipse и при использовании муравьиной.
Вывод при использовании Муравей:
...
[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.
Как я уже сказал, Я не'т иметь эту проблему на моем MacBook, хотя они оба обновлены до последней версии набора инструментов Android: 19.0.0.
Нет необходимости понижать инструменты для сборки обратно 18.1.1<суп>1</суп> этот вопрос исправлено с помощью инструментов построения 19.0.1.
Если вы можете'т использовать 19.0.1 почему-то:
Убедитесь, что значение для Android:targetSdkVersion в **AndroidManifest.xml** соответствует
цель=андроид-в<значение> в проекта.свойства. Если эти два значения не совпадают, здания строить Tools версии 19.0.0 закончится в BufferOverflowException. <суп>Источник</SUP и ГТ;
Есть также некоторые указания от комментариев на этот пост, что вы должны, по крайней мере, 19 (андроид-19). Пожалуйста, оставьте комментарий, если данное решение также работает, если ваша цель < 19.
Это, как исправить внешность для моего проекта. Вопрос, связанный AOSP есть #61710.
<суп>1 Если вам действительно нужно понизить, вы не'т необходимости удалить инструменты для сборки 19.0.0, просто установить 18.1.1 и добавить СДК.инструмент сборки=18.1.1 " к " местного.свойства файла`.</SUP и ГТ;
Попробуйте что Ван сказал:
Щелкните правой кнопкой мыши проект
&ампер;остатки→; андроид инструменты
&ампер;остатки→; библиотека поддержки Android`.
Надеюсь, что это помогает :)
Я был в состоянии получить мой проект, чтобы построить проблема при добавлении этой строки:
sdk.build.tools=18.1.1
...моей проекта.свойства файл, который присутствует в корневой папке проекта. Все другие подходы, казалось, не для меня.
Правой кнопкой мыши на проекте >> свойства >> Андроид >> уровень API 18 работал для меня. Но прежде чем я сделал это, я сделал правый клик на проекте >> инструментов Android >> добавлена поддержка библиотеки и перезапустить затмение. Вы, возможно, придется играть вокруг с вашей избранный АПИ уровень.
После установки нового SDK, появилась новая папка, на "зависимости" не андроида, под файл проекта. Если вы щелкните правой кнопкой мыши и удалить его из пути сборки, вы снова будете в состоянии построить свой проект.
У меня была такая же проблема после обновления до версии 19. Только не забудьте обновить АДТ https://dl-ssl.google.com/android/eclipse/. После этого, я смог построить проект с самой последней редакции.
Я исправила эту проблему без загрузки библиотеки поддержки или возврат средств построения 18.1.1. Я просто изменил уровень API для 16+ и проблема исчезла. Надеюсь, что это поможет.
Ни один из других решений работал для меня после обновления в студию Андроид 0.4.0 и Gradle 1.9.
Я решил проблему, загрузив инструменты для сборки 19.0.1 и обновить следующую строку в моей сборке.Gradle в файлы:
buildToolsVersion '19.0.0'
для
buildToolsVersion '19.0.1'
Была такая же проблема с целевой версией 19
на оба проекта.свойства и AndroidManifest.xml с АНТ.
Исправил на:
Андроид SDK строй-инструменты 19.0.1
Я думаю, что @Аль-Катири-Халид месте. Проблема только из-за отсутствия поддержки на уровне API в инструменты для сборки.
Я решил эту проблему. Просто внести это изменение в свойствах файла проекта:
target=android-18
sdk.build.tools=18.1.1
И в файле манифеста:
uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="18"
Добавить файл библиотеки в проект.. Проект->правая кнопка мыши->Свойства->В Андроид-и GT;библиотека-> нажмите кнопку Добавить и выберите проект библиотеки и дать применить и ОК.. затем очистить проект и запустить снова.. если вы хотите перезапустить Eclipse..
А также, иногда, нужно обновить SDK для Android строить инструменты..
Что работал для меня было это:
Я открыл проект.свойства файла из корень моего проекта и изменен цель=Андроид-8
в цель=андроид-17
Ява.НИО.BufferOverflowException в течение от ошибок Декс Это означает, что вы Дон'Т есть поддержка API для данного уровня, следовательно, построить не удается, есть несколько способов, вы можете исправить это.
Проверьте свой манифест использует-файлов SDK для android:minSdkVersion со значением=на"4" и для Android:targetSdkVersion="и 14"и
Любой из ниже будет исправить проблему:-