Tidak dapat menjalankan dex: Banyak file dex menentukan array Lcom / myapp / R $;

391

Sejak memperbarui ke ADT14 saya tidak bisa lagi membangun proyek saya. Itu membangun baik sebelum memperbarui.

Kesalahan:

[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;

Masalah serupa telah dilaporkan dan saya sudah mencoba saran di sana termasuk

  • Mulai kembali Eclipse.
  • Membersihkan proyek dan membangun kembali - Nonaktifkan opsi "Project-> Build Automatically", kemudian proyek "Clean" dan "Build", kemudian coba jalankan. atur ulang opsi "Build Automatically" ke On
  • Menginstal ulang AndroidAlat Pengembang
  • Menginstal ulang Eclipse (diperbarui ke versi terbaru 3.7.1)
  • Membuat proyek baru yang mengimpor dari sistem file
  • Membuat proyek baru dari subversi.
terry
sumber
apakah Anda bekerja di windows atau mac .. karena saya ingin mengikuti jawaban berikut tetapi saya tidak yakin apakah mereka akan bekerja pada mac .. terima kasih
McLan
jika Anda telah mengimpor proyek perpustakaan dan juga mengimpor JAR perpustakaan di folder lib maka Anda harus menghapus file jar dari folder lib Anda dan juga dari [Build Path -> Configure Build Path]. Dan itu akan berhasil.
Mehul
Lihatlah jawaban saya di tautan berikut. stackoverflow.com/a/38391449/3702595
Sattar Hummatli

Jawaban:

462

Saya memiliki masalah yang sama, cukup aneh karena itu terjadi hanya ketika menggunakan Eclipse (tapi tidak masalah dengan Ant). Inilah cara saya memperbaikinya:

  • Klik kanan pada Project Name
  • Pilih Build Path->Configure Build Path
  • Di Java Build Path, buka tabOrder and Export

  • Hapus centang .jarperpustakaan Anda

Hanya kadang-kadang: Di tab Pesanan dan Ekspor, saya tidak memiliki pustaka jar di sana, jadi saya tidak mencentang item Pustaka Pribadi Android. Sekarang proyek saya sedang berjalan.

Marco Bonifazi
sumber
Dalam proyek saya, saya memasukkan pustaka dukungan dari direktori sdk di jalur build saya, dan saya memiliki pustaka dukungan di folder "libs" untuk dukungan pembangunan semut. Saya menghapus centang dan memperbaiki masalah saya.
Chris Feist
20
Suatu saat antara bangunan dan peluncuran terakhir kali, perpustakaan baru muncul secara misterius dalam proyek saya: "Android Private Libraries" yang berisi perpustakaan dukungan yang sudah saya rujuk. Jadi "file dex multiple define ____" yang misterius ini muncul. Memeriksa Java Build Path dan melihat item baru ini, dan menghapus centang pada perpustakaan dukungan yang semula termasuk menyelesaikan masalah bagi saya.
Tom Pace
9
Terima kasih banyak. Ini solusi yang tepat. Saya benar-benar tidak tahu mengapa gerhana memiliki bug sebanyak ini. Sekarang situasinya seperti hanya 2 jam saya dapat kode dan 6 jam saya harus menemukan solusi untuk masalah yang tidak perlu ini.
roy mathew
44
Di tab Pesanan dan Ekspor saya tidak memiliki perpustakaan jar apa pun di sana, jadi saya memiliki Android Private Librariesitem yang tidak dicentang . Sekarang proyek saya sedang berjalan.
Junior Mayhé
1
Dalam kasus saya, saya memiliki dublicate andandroid-support-v4.jar´. Ketika saya menghapusnya , kesalahannya hilang
ymerdrengene
94

Masalah saya teratasi setelah membersihkan beberapa direktori dan file yang tersisa dari versi alat sebelumnya. ADT Rev 14 mengubah tempat penyimpanan biner . Saya menghapus seluruh direktori bin, memulai kembali Eclipse dan membersihkan build dan memaksa membangun kembali. Itu tampaknya melakukan trik pada awalnya tetapi masalahnya kembali setelah menjalankan berikutnya.

Saya akhirnya menemukan bahwa direktori bin saya dimasukkan dalam jalur build proyek. Saya mengecualikan bin dari jalur build dan mengulangi langkah-langkah di atas. Ini menyelesaikan masalah saya.

terry
sumber
42
Apa-apaan sih Google. Masalah ini terus datang kembali bahkan dengan R15.
terry
2
Saya mengedit solusi di atas untuk memasukkan resolusi akhir. Diselesaikan secara permanen sekarang.
terry
7
Singkatnya, tidak ada yang benar-benar tahu mengapa masalah terjadi, apa artinya dan bagaimana cara memperbaikinya (saya tidak memiliki direktori bin di Java Build Path). Saya menghindari memperbarui ke R15 karena alasan ini, tetap dengan R9. Tetapi saya masih memiliki masalah yang sama , tanpa petunjuk yang terlihat. Kiat atau bantuan apa pun akan sangat dihargai.
Bill The Ape
6
@BillTheApe - setuju. Ini melampaui frustrasi, itu mahal.
Tom Redman
@TRedman Saya akhirnya berhasil memecahkan masalah . Tanpa mengerti kenapa. Jangan tertawa. LOL +1.
Bill The Ape
50

[Dipecahkan untuk saya]

Eclipse project properties-> Java build path-> Order dan ekspor

Hapus centang perpustakaan Android pribadi.

pengguna802467
sumber
4
Tidak membantu dalam kasus saya
redux
1
THANX A LOT membantu saya
madhu527
46

Tidak satu pun di atas yang membantu. Itu adalah masalah sederhana pada akhirnya.

Saya punya proyek yang menggunakan FacebookSDK dan ViewPagerIndicator sebagai proyek perpustakaan. Semua dibangun di Android API 16 dan kedua proyek tersebut menggunakan pustaka dukungan android vX (X bukan 16!)

Saya menambahkan JAR eksternal ke kedua proyek tersebut dan mengarahkannya ke \ extras \ android \ v4 ... Dan juga menghapus tabung v4 yang saya miliki di folder libs mereka.

Bersihkan semua proyek dan bangun kembali.

Voilla!

Kesalahan persis yang saya terima: Tidak dapat menjalankan dex: Beberapa file dex menentukan Landroid / support / v4 / view / PagerAdapter; Konversi ke format Dalvik gagal: Tidak dapat menjalankan dex: Beberapa file dex menentukan Landroid / support / v4 / view / PagerAdapter;

Roy Weinberg
sumber
36

Masalah ini terjadi pada saya, saya memiliki .jar eksternal di folder libs saya bernama gson-2.2.2.jar tetapi untuk beberapa alasan ada dua di antaranya, gson-2.2.2.jar dan gson-2.2.2.jar ( 1), saya hanya menghapus yang terakhir dan proyek saya dibangun dengan baik lagi.

TomSelleck
sumber
2
Saya memiliki masalah serupa ketika ada file jar lama di folder libs dan menautkannya ke jar yang lebih baru di ruang kerja yang sama. Ketika ADT menemukan beberapa definisi untuk simbol yang sama, ia menempatkan kesalahan seperti ini. Menghapus file jar lama di folder lib memperbaikinya untuk saya.
phyatt
Guci eksternal adalah salah satu penyebab masalah dan kebetulan juga demikian dalam kasus saya. Saya baru saja memiliki toples sisa dalam /libseksperimen saya sebelumnya, menghasilkan Project Library dan .jar yang dihasilkan darinya. Menghapus stoples di bawah /libsmenyelesaikan masalah. +1
ripopenid
31
  1. Tutup gerhana.
  2. Hapus folder bin di dalam folder proyek Anda.
  3. Mulai gerhana dan bersihkan proyek Anda.
  4. Sekarang jalankan dan masalahnya harus hilang
Mohit marwal
sumber
Jawaban Mateus Viccari memecahkan masalah saya, saya menghapus duplikat libs, dan itu bekerja seperti pesona ..
swiftBoy
Bekerja untuk saya. Jika manifest fileterhapus oleh gerhana dari bindirektori, tambahkan secara manual dan bersihkan proyek lagi.
Mehul Joisar
Bekerja untukku. Juga pastikan Anda tidak memiliki .jar yang sama di dua tempat yang berbeda (dalam kasus saya, saya memiliki keduanya di proyek perpustakaan dan dalam proyek referensi proyek perpustakaan itu. Tampaknya Eclipse hanya menambahkannya secara otomatis untuk beberapa alasan)
Magnus W
Bagi saya, saya baru saja membersihkan seluruh ruang kerja. Membersihkan proyek saja tidak cukup. Saya percaya masalah saya ada hubungannya dengan beralih salah satu proyek ke "Perpustakaan" di tengah operasi yang bersih
tricknology
Tidak membantu dalam kasus saya
redux
26

Seperti yang disebutkan orang lain, ini terjadi ketika Anda memiliki banyak salinan dari kelas yang sama di jalur build Anda - termasuk bin / di classpath Anda adalah salah satu cara untuk menjamin masalah ini.

Bagi saya, ini terjadi ketika saya telah menambahkan android-support-v4.jar ke libs / folder saya, dan entah bagaimana eclipse menambahkan salinan kedua ke bin / class / android-support-v4.jar.

Menghapus salinan tambahan dalam bin / kelas memecahkan masalah - tidak yakin mengapa Eclipse membuat salinan di sana.

Anda dapat menguji untuk ini dengan

grep -r YourOffendingClassName YourApp | tabung grep

chaqke
sumber
23

Bagi saya, saya cukup klik kanan pada proyek -> Build path -> configure build path -> Libraries -> hapus dependensi

setelah itu berhasil.

sonida
sumber
20

Kesalahan ini dapat terjadi jika Anda memiliki dua botol yang berisi nama kelas yang sama, misalnya saya memiliki dua perpustakaan: jsr311-api-1.1.1.jar, dan jersey-core-1.17.1.jar, keduanya berisi kelas javax.ws .rs.ApplicationPath. Saya menghapus jsr311-api-1.1.1.jar dan bekerja dengan baik.

Mateus Viccari
sumber
1
Ini solusi sempurna bagi saya. Saya menambahkan lib yang sama dua kali. Terima kasih.
swiftBoy
19

Saya mendapatkan kesalahan ini setelah menambahkan facebooksdk.jar ke proyek yang sudah memiliki ketergantungan pada android-support-v4.jar . Karena facebooksdk.jar sudah menyertakan android-support-v4.jar sendiri, ada konflik. Menghapus android-support-v4.jar sebelumnya dari proyek Properties / Java Build Path / Libraries menyelesaikan masalah untuk saya.

pengguna1293131
sumber
18

Pergi ke Project / properties dan Java Build Path dan hapus centang pada Perpustakaan Pribadi Android .

Ini juga merupakan kasus lain untuk jenis kesalahan ini

Selesai

Hiren Patel
sumber
15

Saya menghapus dependensi Android dari build path dan itu berhasil.

Sunting: abaikan itu. Saya memiliki toples yang sama di folder maven dependensi dan libs saya. Saya menghapus satu di folder lib.

Osha Mahue
sumber
2
Menghapus Ketergantungan Android dari jalur build merusak proyek saya. Untungnya itu mudah untuk dipulihkan dengan mengklik kanan proyek> Alat Android> Perbaiki Properti Proyek.
azdev
Dalam beberapa kasus, menghapus dependensi android dan meregenerasinya menyelesaikan beberapa masalah. Tetapi seperti dalam edit saya itu tidak terjadi.
Hadi Tok
9

Anda mungkin telah menginstal r14 , kesalahan ini mungkin disebabkan karena pembaruan alat platform, Anda harus menginstal ulang SDK Anda

Reno
sumber
Saya baru saja menghapus SDK saya dan memasangnya langsung dari file zip yang diunduh dan kemudian memuat Android API dengan Android SDK Manager. Saya memiliki harapan tinggi tetapi masalahnya tetap ada.
terry
Ada folder tersembunyi .android di windows, Anda juga harus menghapusnya.
Reno
masalah yang sama ada
McLan
9

Bagi saya masalah ini hanya ada selama ada proyek perpustakaan Android yang terlibat dalam proyek saya. Jadi ketika saya menghapus semua perpustakaan dan melakukan apa yang Anda katakan saya bisa menjalankan aplikasi saya lagi. Jika ada perpustakaan yang terlibat bahkan trik bin-removal-trick tidak akan berhasil.

Saya tidak mengerti mengapa bug ini pertama kali muncul hari ini karena saya menggunakan ADT 14 selama beberapa hari sekarang. Yah ada bug lain yang membuatku senang.

mephju
sumber
Banyak solusi yang terlihat seperti beberapa hal voodoo ... :)
Jasper
8

Menghapus folder bin tidak cukup, saya juga menghapus folder gen. Kemudian setelah dua membangun kembali pesan kesalahan dex hilang.

Rudolf Polzer
sumber
8

Pilih proyek di Project Explorer , klik kanan dan pilih Properties -> Java Build Path -> Source -> Centang kotak Izinkan folder keluaran untuk folder sumber

prasantasing
sumber
Tidak membantu kasus saya.
redux
8

Saya pada dasarnya menghadapi masalah yang sama. Saya menghapus folder BIN, lalu menghapus file jar yang tidak terpakai untuk Order and Import from eclipse. BEKERJA setelah itu

Ahsan Zaheer
sumber
7

Saya terlambat ke pesta ini, tetapi menambahkan pengalaman saya sendiri sehingga saya dapat menemukannya lagi nanti :)

Saya mengalami masalah ini setelah memutakhirkan SDK Android dan gerhana iklan. Tidak ada peningkatan yang tidak dihukum!

Masalahnya bagi saya terkait dengan proyek perpustakaan, referensi aplikasi saya baik proyek java standar dan proyek perpustakaan android. Saya perhatikan pengaturan Java Build Path termasuk proyek perpustakaan android folder src dan res di daftar Sumber (upvotes untuk semua orang yang menyebutkan bin dalam sumber menjadi masalah, src dan res juga menjadi masalah.)

Jadi solusinya adalah:

  1. Hapus semua sumber perpustakaan Android referensi dan referensi proyek dari bagian Java Build Path dari pengaturan di kedua daftar Sumber dan daftar Proyek
  2. Pastikan dependensi java murni tercantum dalam daftar Proyek, dan Diperiksa di tab Pesanan dan Ekspor sehingga kelas disertakan dalam apk
  3. Pastikan semua dependensi perpustakaan Android terdaftar di bagian Android dari properti proyek, di bagian perpustakaan di bawah versi SDK yang diperiksa.

Itu sepanjang jalan untuk menyatukan semua itu dari solusi lain! Fiuh!

Jay
sumber
Dinyatakan dengan baik! Saya sampai pada kesimpulan yang identik setelah banyak bekerja. Saya hanya ingin menambahkan bahwa jika ada proyek perpustakaan Anda termasuk proyek perpustakaan lain atau dependensi Java murni, semuanya harus ditambahkan dengan cara yang sama, jika tidak maka kesalahan ini akan muncul. Jika Anda mengikuti aturan di atas untuk semua proyek Anda, Anda seharusnya tidak memiliki masalah.
strangeluck
1
Satu hal lagi ... tampaknya jika Anda tidak perlu mengekspor Perpustakaan Pribadi Android dari proyek atau proyek perpustakaan, jangan. Jika lebih dari satu proyek atau proyek perpustakaan mengekspornya, Anda akan mendapatkan banyak kesalahan file dex.
strangeluck
6

Saya mengalami ini ketika saya memutakhirkan dari 14 adt 15 dan untuk membuatnya bekerja saya akhirnya hanya menghapus folder .eclipse (bersama dengan pengaturan saya) dan menginstal ulang adt 15.

Jake1164
sumber
6

Setelah membaca respons Terrys tentang menghapus direktori bin dan Larrys tentang lokasi direktori ANT:

Saya memindahkan file-file yang terletak di direktori BIN proyek saya ke BIN / CLASSES dan menjalankannya.

Sunting 1 Kemudian gagal pada jalankan kedua ... doh

Sunting 2 Eclipse yang sudah ditutup memindahkan file kembali ke lokasi semula dan semuanya berfungsi ... um apa? Saya tidak berpura-pura tahu mengapa ini berhasil. Akan memperbarui jika ada perubahan.

Sunting 3 Saya telah mencatat dari cadangan saya bahwa memang ada file duplikat di direktori BIN dan BIN / CLASSES.

Jadi jawabannya adalah: tidak memiliki file di kedua lokasi. Setidaknya bagi saya itulah yang berhasil.

HostMyBus
sumber
Cobalah untuk mengurangi jawaban: Kesimpulan yang bermanfaat diikuti oleh fakta yang mendukung . Hindari narasi sejarah AMAP; Orang cenderung memberi tanda itu, berpikir itu "bukan jawaban".
Brock Adams
bersorak untuk itu, bantuan apa pun untuk membuat ocehan saya lebih jelas dihargai
HostMyBus
6

Ubah file eclipse.ini Anda dan atur parameter memori maksimum ke

-Xmx1024m

Kemudian restart komputer Anda.

Ini berhasil untuk saya.

Truncarlos
sumber
1
Tidak ada yang terkait, memberikan lebih banyak memori tidak menyelesaikan masalah ketergantungan
Sierisimo
6

menemukan solusi saya percaya ??

    [2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;

Di mana dikatakan: "Lcom / coremedia / iso / AbstractBoxParser $ 1" yang kebetulan merupakan lokasi perpustakaan yang saya impor yang menyebabkan masalah. Mencari com.codemedia.iso.AbstractBoxParser $ 1.class dan .AbstractBoxParser.class .... mengambil toples itu, membuka kemasannya, mengeluarkan kedua file itu, kemudian dikemas ulang sebagai .zip, ditambahkan ke perpustakaan, dibersihkan dan berfungsi! tidak ada lagi konflik untuk saya! (juga tidak ada pembaruan atau unduhan tambahan)

jp093121
sumber
6

Saya memiliki dua versi berbeda dari file Cordova .jar di folder libs saya, saya menghapus versi yang bahkan tidak saya gunakan dan langsung berfungsi. Aneh karena saya tidak memperhatikan itu sebelumnya dan itu berhasil sebelumnya dan kemudian tiba-tiba berhenti bekerja ...

Dediqated
sumber
5

Pembaruan ADT R14 mengubah di mana kelas-kelas pergi ke direktori bin / kelas (lihat http://tools.android.com/recent/buildchangesinrevision14 ). Jika Anda menggunakan ANT, Anda harus mengubah jalur untuk kelas Anda dari nampan ke nampan / kelas. Ini berhasil untuk saya.

Larry Borsato
sumber
Saya menggunakan Eclipse. Apakah Anda tahu di mana Anda mengubah jalur kelas di Eclipse?
terry
5

Solusi untuk saya:

  1. KEMBALI KODE ANDA!
  2. Arahkan ke ruang kerja proyek Anda (bukan proyek Anda) dan jalankan perintah berikut:

    dev1: ruang kerja $ cd ~ / Documents / workspace / .metadata / .plugins / dev1: ruang kerja $ rm -rf org.eclipse.core.resources

  3. Arahkan ke direktori Eclipse Anda dan ketikkan perintah ini:

    dev1: eclipse $ ./eclipse clear

  4. Eclipse akan mulai dengan ruang kerja kosong - jangan khawatir proyek Anda masih ada. Sederhana membuat proyek baru dari sumber daya yang ada dan segala sesuatunya harus menjadi saus.

Kesalahan persis yang saya terima: [2012-02-07 14:15:53 ​​- Dex Loader] Tidak dapat menjalankan dex: Beberapa file dex menentukan Landroid / support / v4 / view / PagerAdapter; [2012-02-07 14:15:53 ​​- ProjectCloud] Konversi ke format Dalvik gagal: Tidak dapat menjalankan dex: Beberapa file dex menentukan Landroid / support / v4 / view / PagerAdapter;

Cookster
sumber
5

Saya memiliki beberapa proyek perpustakaan dengan nama paket yang sama yang ditentukan dalam AndroidManifest (jadi tidak ada nama bidang duplikat yang dihasilkan oleh R.java). Saya harus menghapus izin dan aktivitas apa pun dari AndroidManifest.xml untuk semua proyek perpustakaan untuk menghapus kesalahan sehingga Manifest.java tidak dibuat beberapa kali. Semoga ini bisa membantu seseorang.

Jared Rummler
sumber
4

Setelah mencoba semua saran lainnya tanpa hasil, saya menghapus semua isi direktori 'bin' proyek saya, kemudian menjalankan gerhana lagi dan itu berhasil.

JPB
sumber
4

Saya mengonversi proyek non-perpustakaan ke proyek perpustakaan, tetapi sebelumnya memiliki file jar yang dibangun di folder libs. Menghapus file jar ini menyebabkan kesalahan ini hilang.

PacificSky
sumber
4

Saya menghadapi masalah yang sama kemudian saya melihat sambil mendorong aplikasi saya beberapa file jar yang dimuat dua kali maka beberapa kesalahan dex. Cukup buka properti proyek Anda -> Java Build Path dan coba hapus centang jar yang sedang dimuat dua kali.

Navi
sumber
4

[Dipecahkan untuk saya]

dengan menghapus duplikat perpustakaan "file JAR" kemudian menghapus file BuildConfig.java, proyek bersih dan pekerjaannya.

AbuQauod
sumber