Android dex memberikan BufferOverflowException ketika membangun

Ketika menyusun spesifik proyek Android, dan hanya pada mesin Windows saya, saya mendapatkan jawa.nio.BufferOverflowException selama dari dex. Masalah terjadi ketika menggunakan Eclipse dan ketika menggunakan Semut.

Output ketika menggunakan Semut adalah:

...
  [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

Ketika menggunakan Eclipse pesan pendek tapi serupa:

[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.

Seperti yang saya katakan, saya don't memiliki masalah ini di MacBook saya, meskipun mereka berdua upgrade ke versi terbaru dari Android Membangun alat-alat: 19.0.0.

Mengomentari pertanyaan (5)
Larutan

Tidak perlu untuk downgrade membangun alat kembali ke 18.1.11, masalah ini tetap dengan membangun alat-alat 19.0.1.

Jika anda dapat't menggunakan 19.0.1 untuk beberapa alasan, maka:

Pastikan bahwa nilai android:targetSdkVersion di AndroidManifest.xml pertandingan target=android-<nilai> di proyek.sifat-sifat. Jika dua nilai tersebut tidak sama, bangunan dengan membangun tools versi 19.0.0 akan berakhir di BufferOverflowException. Sumber

Ada juga beberapa indikasi dari komentar di posting ini bahwa anda perlu untuk menargetkan setidaknya 19 (android-19). Silakan tinggalkan komentar jika solusi ini juga bekerja jika target anda adalah < 19.

Ini adalah bagaimana memperbaiki penampilan untuk proyek saya. Terkait AOSP masalah #61710.

1 Jika anda benar-benar perlu untuk downgrade, anda don't perlu uninstall membangun alat 19.0.0, hanya menginstal 18.1.1 dan tambahkan sdk.buildtools=18.1.1 ke lokal.properties file.

Komentar (15)

Mencoba apa yang van mengatakan:

Klik kanan proyekandroid tools &rarr;android support library`.

Semoga ini bisa membantu :)

Komentar (1)

Masalah yang sama di sini. Dikembalikan untuk membangun alat 18.1.1, restart Eclipse dan yang tetap itu.

Komentar (7)

Saya bisa mendapatkan masalah proyek untuk membangun ini dengan menambahkan baris tambahan:

sdk.build.tools=18.1.1

...untuk saya proyek.sifat-sifat file yang ada di root folder proyek. Semua pendekatan lain tampaknya gagal untuk saya.

Komentar (4)

Klik kanan pada proyek >> Properti >> Android >> API Level 18 bekerja untuk saya. Tapi sebelum aku melakukan itu aku lakukan klik kanan pada project >> Android Tools >> Menambahkan Dukungan Perpustakaan dan restart Eclipse. Anda mungkin harus bermain-main dengan teman yang dipilih API tingkat.

Komentar (2)

Setelah instalasi SDK baru, ada folder baru, "Android Dependensi", di bawah file proyek anda. Jika anda klik kanan dan menghapusnya dari membangun jalan, anda akan mampu membangun proyek anda.

Komentar (2)

Update

klik kanan proyek anda > android tools > android support library

Bersih proyek anda dan mencoba untuk dibangun.

Komentar (0)

Aku punya masalah yang sama setelah update ke Revisi 19. Hanya jangan lupa untuk update ADT, https://dl-ssl.google.com/android/eclipse/. Setelah ini, saya mampu untuk membangun proyek dengan revisi terbaru.

Komentar (0)

Saya tetap masalah ini tanpa men-download dukungan perpustakaan atau kembali membangun alat untuk 18.1.1. Saya hanya mengubah API level 16+ dan masalah lenyap. Berharap ini akan membantu.

Komentar (2)

Tidak ada solusi lain di sini bekerja untuk saya setelah upgrade ke Android Studio 0.4.0 dan Gradle 1.9.

Saya terselesaikan masalah dengan men-download Membangun Alat 19.0.1 dan memperbarui baris berikut dalam membangun.gradle file:

buildToolsVersion '19.0.0'

untuk

buildToolsVersion '19.0.1'
Komentar (1)

Punya masalah yang sama dengan versi target 19 di proyek.properties dan AndroidManifest.xml dengan Semut.

Tetap dengan:

  • Dihapus Android SDK Membangun-Alat 19.0.1
  • Menginstal Android SDK Membangun-Alat 19.0.2`

Saya pikir @Al-Kathiri-Khalid adalah tempat di. Masalah ini hanya karena tidak ada dukungan untuk API level dalam Membangun alat-Alat.

Komentar (0)

Untuk orang-orang yang menghadapi masalah dengan IntelliJ IDEA 13, uninstall Membangun Alat 19.

Komentar (0)

Aku punya masalah yang sama, meskipun proyek saya tidak menggunakan dukungan perpustakaan. Menambahkan libs/android-support-v4.jar untuk proyek ini bekerja di sekitar masalah tanpa perlu kembali membangun alat-alat yang kembali dari v19.

Komentar (0)

Saya memecahkan masalah ini. Hanya membuat perubahan ini di project properties file:

target=android-18
sdk.build.tools=18.1.1

Dan dalam manifest file:

uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="18"
Komentar (0)

Klik kanan pada Proyek>>Sifat>>Android dan pilih API Tingkat yang lebih besar dari 15

ATAU

Tambahkan google-play-services_lib untuk proyek anda dengan mengklik kanan pada project dan memilih Proyek>>Sifat>>Android>>Add

Komentar (0)

Tambahkan Library file di proyek.. Proyek->klik kanan->Sifat->android->Perpustakaan-> klik Add dan pilih Proyek Perpustakaan dan memberikan apply dan ok.. kemudian, bersih proyek dan menjalankan lagi.. jika anda ingin me-restart eclipse..

Dan juga, kadang-kadang, perlu memperbarui Android SDK membangun alat-alat..

Komentar (0)

Apa yang bekerja untuk saya adalah ini: Aku membuka proyek.sifat file dari akar proyek saya dan berubah target=android-8 untuk target=android-17

Komentar (0)

jawa.nio.BufferOverflowException selama dari dex kesalahan Ini berarti anda don't memiliki mendukung API untuk tingkat itu oleh karena itu gagal membangun, ada beberapa cara anda dapat memperbaiki hal ini.

Periksa file manifest uses-sdk android:minSdkVersion="4" dan android:targetSdkVersion="14"

Salah satu di bawah ini akan memperbaiki masalah:-

  • Download API diperlukan tingkat (Ini mungkin memakan waktu) dan menjalankan aplikasi anda lagi
  • Cepat kotor memperbaiki dan mengubah Proyek anda target di proyek.sifat-sifat untuk target baru anda target=android-4
  • Cepat membersihkan memperbaiki, mengubah SdkVersion di manifes dan Bersih proyek anda untuk menambahkan perubahan untuk proyek anda.sifat (favorit Saya)
Komentar (0)

Saya dihapus sebelumnya Android SDK dan Eclipse. Saya menginstal ADT bundel dan bekerja...

Ini tetap masalah BufferOverflow pada Dex yang dimulai setelah aku API 19. Saya sebelumnya menggunakan Eclipse dengan Android SDK diinstal sebagai add-on paket.

Komentar (2)