Dalam aplikasi Android saya di Eclipse saya mendapatkan kesalahan berikut.
PENGECUALIAN TOP-LEVEL TIDAK
DIKENAL : java.lang.IllegalArgumentException: sudah ditambahkan: Lorg / xmlpull / v1 / XmlPullParser;
....
Konversi ke format Dalvik gagal dengan kesalahan 1
Kesalahan ini hanya muncul ketika saya menambahkan file JAR eksternal tertentu ke proyek saya. Saya mencari waktu yang lama untuk solusi yang mungkin, tetapi tidak ada solusi yang mungkin bekerja.
Saya bahkan mencoba mengubah ke Android 1.6 bukannya 1.5 (versi saat ini saya gunakan).
android
dalvik
android-sdk-1.6
Michel
sumber
sumber
Jawaban:
Buka Project »Properties» Java Build Path »Libraries dan hapus semua kecuali" Android XY "(dalam kasus saya Android 1.5). klik OK. Buka Proyek »Bersihkan» Bersihkan proyek yang dipilih di bawah »pilih proyek Anda dan klik OK. Itu seharusnya bekerja.
Mungkin juga Anda memiliki file JAR yang terletak di suatu tempat di folder proyek Anda (saya telah menyalin file JAR Admob ke folder src saya) dan KEMUDIAN menambahkannya sebagai Java Path Library. Itu tidak muncul di bawah Package Explorer, jadi Anda tidak menyadarinya, tetapi itu dihitung dua kali, menyebabkan kesalahan Dalvik yang ditakuti 1.
Alasan lain yang mungkin bisa menjadi konflik nama paket. Misalkan Anda memiliki paket
com.abc.xyz
dan kelas bernamaA.java
di dalam paket ini, dan proyek perpustakaan lain (yang ditambahkan ke ketergantungan proyek ini) yang berisi hal yang samacom.abc.xyz.A.java
, maka Anda akan mendapatkan kesalahan yang sama persis. Ini berarti, Anda memiliki beberapa referensi ke file yang samaA.java
dan tidak dapat membangunnya dengan benar.Dengan cara lain ini dapat terjadi jika Anda secara tidak sengaja atau sengaja mengedit / menambahkan sesuatu dalam file path kelas secara manual. Dalam kasus tertentu kita dapat menambahkan path android.jar secara manual ke file classpath untuk menghasilkan java doc. Pada menghapusnya setelah javadoc dihasilkan kode akan berfungsi dengan baik. Silakan periksa ini juga jika ada yang masih terjadi.
sumber
Saya memecahkan masalah.
Ini adalah konflik file JAR.
Tampaknya saya memiliki dua file JAR pada buildpath saya yang menyertakan paket dan kelas yang sama.
smack.jar
danandroid_maps_lib-1.0.2
Menghapus paket ini dari salah satu file JAR memecahkan masalah.
sumber
ScoreloopUI
proyek ke permainan AndEngine saya, guci ini juga mengganggu Anda, meskipun mereka tidak berada di jalur pembangunan proyek Anda sendiri.Solusi Windows 7:
Mengonfirmasi masalah ini disebabkan oleh baris perintah ProGuard dalam file
[Direktori Instalasi Android SDK] \ tools \ proguard \ bin \ proguard.bat
Edit baris berikut ini akan menyelesaikan masalah:
untuk
sumber
Anda dapat menyelesaikan masalah ini dengan mudah (dengan Eclipse Android Developer Tools, Build: v22.0.1-685705) dengan mematikan menu> "Project"> "Build Automatically" sambil mengekspor (tidak) aplikasi Android yang ditandatangani. Setelah itu, jangan lupa untuk menyalakannya lagi.
sumber
Jika Anda memiliki ADT revisi 12+, Anda harus memperbarui proguard Anda dari 4.4 -> 4.6 (seperti dijelaskan di sini ). Juga, Anda harus meninggalkan ... \ bin \ proguard.bat file dalam bentuk asli.
Cukup unduh dari web, dan salin folder lib dari paket yang diunduh ke:
[Direktori Instalasi SDK Android] \ tools \ proguard \ lib
sumber
<sdk>/tools/proguard
dir lama dan memindahkanproguard4.11
dir unzipped lengkap ke jalan lama. Voila! Sekarang seandainya saya bisa mendapatkan jam saya kembali ... -_-EDIT (solusi baru):
Sepertinya solusi sebelumnya hanya bypass. Saya akhirnya berhasil memperbaiki masalah secara permanen: Dalam kasus saya ada ketidakcocokan dalam file android-support-v4 di proyek saya dan di proyek Facebook yang dirujuk dalam proyek saya.
Saya menemukan kesalahan ini dengan melakukan Pemeriksaan Lint (Alat Android / Jalankan Lint: Periksa Kesalahan Umum)
Solusi saya sebelumnya:
Saya sudah mencoba solusi yang mungkin di situs ini - tidak ada yang membantu !!!
Akhirnya saya menemukan jawaban di sini: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4
Langkah mudah:
sumber
Berikut ini skenario lain, dan solusinya:
Jika Anda mengalami masalah ini baru-baru ini setelah memperbarui ADT untuk Eclipse:
Tampaknya alasannya adalah bahwa beberapa versi sebelumnya dari folder sumber proyek perpustakaan terkait ADT ke proyek "child", dan kombinasi ADT / Dex saat ini tidak kompatibel dengan solusi itu lagi.
EDIT: ini dikonfirmasi oleh entri Blog Android Dev, khususnya yang ini - lihat paragraf ke-8 dan seterusnya.
sumber
Pergi ke Project dan kemudian hapus centang "Build Automatically". Lalu cobalah untuk mengekspor proyek dan kesalahan hilang.
sumber
Ini juga dapat disebabkan jika Anda telah menambahkan
Android.jar
file ke jalur build Anda, mungkin karena perbaikan cepat yang tidak disengaja di Eclipse. Hapus dengan mengklik kanan Project -> build path -> configure build path -> android.jar , hapus.sumber
Cukup membersihkan proyek telah bekerja untuk saya setiap kali kesalahan ini muncul.
sumber
Solusi saya sendiri dan satu-satunya yang saya temukan hari ini setelah empat jam menguji semua solusi, adalah kombinasi dari banyak solusi yang disediakan di sini:
Delete
proyek dari Eclipse\bin
dan\gen
dari folder proyek.classpath
file di folder proyek rooteclipse -clean
Import
proyekProperties
>Java Build Path
>Libraries
dan menghapus segala sesuatu yang lain daripadaAndroid XX.Y
clean
proyek, tunggu Bangunan otomatis atauBuild
ituSaya mencoba setiap langkah pada suatu waktu dan banyak kombinasi, tetapi hanya suksesi dari semua langkah sekaligus yang berhasil! Saya harap saya tidak akan menghadapi ini lagi ...
sumber
bin
folder melakukannya untuk saya.Hanya untuk orang lain yang masih memiliki masalah ini dan mereka telah mencoba jawaban di atas tetapi masih mendapatkan kesalahan (yang merupakan kasus saya), maka solusi saya adalah menghapus proyek dari Eclipse dan mengimpor kembali lagi.
Ini membuat perpustakaan Android ditambahkan lagi ke perpustakaan yang direferensikan saya, jadi sekarang saya memiliki dua file Android JAR yang direferensikan, maka saya menghapus salah satunya dan sekarang kompilasinya bagus.
Solusi: Hapus proyek dari Eclipse IDE dan kemudian impor kembali lagi, lalu periksa solusi di atas.
sumber
Berlari ke masalah ini sendiri hari ini. Membersihkan dan membangun kembali tidak memperbaiki masalah. Menghapus dan mengimport ulang proyek juga tidak membantu.
Saya akhirnya menelusurinya kembali ke penambahan yang buruk pada file .class saya. Saya pikir ini ditambahkan oleh alat plugin ketika saya mencoba untuk memperbaiki masalah lain, menghapusnya menyingkirkan "Konversi ke format Dalvik gagal dengan kesalahan build 1":
sumber
Bagi saya, referensi JAR tambahan telah muncul di jalur build saya. Saya menghapus ini, dan berfungsi sekarang.
sumber
Masalah saya disebabkan oleh ADT versi 12.0 dan integrasi ProGuard. Bug ini didokumentasikan dengan baik dan solusinya ada di dokumentasi
Solusi ada di sini
Baris perintah ProGuard
sumber
Saya telah mengatasi masalah ini saat menggunakan pustaka Sherlock ActionBar di proyek saya. Anda bisa melakukan langkah berikut, ini berhasil untuk saya.
Semoga itu bisa membantu Anda.
sumber
Dalam kasus saya masalahnya sebenarnya dengan proyek OpenFeint API. Saya telah menambahkan OpenFeint sebagai proyek perpustakaan:
.
Ini juga ditambahkan ke path build, alat ADT 16 memberikan kesalahan dengan sceneario ini.
Klik kanan pada proyek Anda dan klik build path, konfigurasikan path build dan kemudian lihat gambar dan hapus proyek OpenFeint Anda dari sini dan semuanya selesai :)
sumber
Saya menemukan sesuatu yang lain. Android menggunakan
/libs
direktori untuk file JAR. Saya telah melihat kesalahan "Konversi ke format Dalvik gagal dengan kesalahan 1" berkali-kali, selalu ketika saya membuat kesalahan dalam file JAR saya.Sekarang saya memutakhirkan Roboguice ke versi yang lebih baru, dengan meletakkan file JAR baru di
/libs
direktori dan mengalihkan jalur kelas ke versi baru. Itu menyebabkan kesalahan Dalvik.Ketika saya menghapus salah satu file Roboguice JAR dari
/libs
folder, kesalahannya hilang. Rupanya, Android mengambil semua file JAR/libs
, terlepas dari yang Anda tentukan di jalur Java build. Saya tidak ingat persis, tetapi saya pikir Android mulai digunakan/libs
secara default dimulai dengan Android 4.0 (Ice Cream Sandwich, ICS).sumber
Memperbarui Proguard ke versi terbaru menyelesaikannya untuk saya.
C:\Program Files (x86)\Android\android-sdk\tools\proguard\
TERIMA KASIH TUHAN!
sumber
Secara umum, tampaknya masalah ini muncul ketika ada file JAR yang tidak perlu dalam membangun jalur.
Saya menghadapi masalah ini saat mengerjakan IntelliJ IDEA . Bagi saya itu terjadi karena saya menambahkan perpustakaan JUnit dan Mockito yang sedang dikompilasi pada saat runtime. Ini perlu diatur ke "pengujian" pada properti modul.
sumber
Tidak ada solusi yang diusulkan sebelumnya yang bekerja untuk saya. Dalam kasus saya, masalah terjadi ketika saya beralih dari referensi folder kode sumber perpustakaan ke menggunakan file JAR perpustakaan. Awalnya ada proyek perpustakaan Android yang terdaftar di bawah proyek aplikasi Android Properties \ Android page \ bagian Library, dan perpustakaan dibandingkan juga di pohon proyek explorer sebagai tautan ke direktori sumber perpustakaan.
Di tempat pertama, saya baru saja menghapus tautan direktori dari pohon proyek dan saya menambahkan perpustakaan JAR ke jalur pembuatan, tetapi ini menyebabkan pengecualian.
Prosedur yang benar adalah (setelah mengubah kembali jalur build dan meletakkan kembali referensi ke sumber perpustakaan):
dengan benar menghapus tautan direktori sumber pustaka dengan benar-benar menghapus referensi dari halaman proyek properti Properties \ Android
menambahkan JAR perpustakaan ke proyek aplikasi membangun jalur seperti biasa.
sumber
Tidak ada solusi yang terdaftar yang berfungsi untuk saya.
Di sinilah saya mengalami masalah:
Saya menambahkan file JAR eksternal jSoup ke jalur proyek saya dengan terlebih dahulu meletakkannya di folder sumber yang disebut "libs", dan kemudian mengklik kanan padanya, Build Path -> add to build path. Ini menimbulkan kesalahan konversi Dalvik. Dikatakan saya "sudah memasukkan" kelas dari file JAR itu. Saya melihat-lihat direktori proyek dan menemukan bahwa tempat itu "sudah termasuk" sebenarnya adalah
bin
direktori. Saya menghapus file JAR daribin
direktori dan menyegarkan proyek di Eclipse dan kesalahan hilang!sumber
Semua solusi di atas tidak berhasil untuk saya. Saya tidak menggunakan .jar yang dikompilasi sebelumnya. Saya menggunakan kesalahan LVL dan Dalvik di mana semua terkait dengan perpustakaan lisensi pasar.
Masalah diselesaikan dengan menghapus proyek utama dan mengimpor kembali (buat proyek baru dari sumber yang ada).
sumber
Saya memiliki masalah yang sama dan tidak ada solusi yang berhasil. Akhirnya, saya melihat di konsol bahwa kesalahan itu disebabkan oleh duplikasi kelas (satu di proyek yang ada, satu di file jar yang ditambahkan):
Jadi periksa apakah Anda menambahkan jar dengan duplikat kelas dalam proyek Anda. Jika ya, coba hapus salah satunya.
Ini berhasil untuk saya.
sumber
Seringkali bagi saya, membersihkan proyek TIDAK memperbaiki masalah ini.
Tetapi menutup proyek di Eclipse dan kemudian membukanya kembali sepertinya memperbaikinya dalam kasus-kasus itu ...
sumber
Saya mengalami masalah ini tetapi solusi saya ada dua. 1.) Saya harus menambahkan versi target Android di bawah proyek -> properties -> Android . 2.) Saya tidak memiliki semua 'pengaya pihak ketiga' google. Klik di Manajer AVD SDK di bawah paket yang tersedia -> pihak ketiga add-ons -> Google Inc . Saya mengunduh semua SDK dan itu memecahkan masalah saya.
sumber
Saya menggunakan Android 1.6 dan memiliki satu file JAR eksternal. Apa yang berhasil bagi saya adalah menghapus semua perpustakaan, klik kanan proyek dan pilih Android Tools -> * Perbaiki Properti Proyek (yang ditambahkan kembali Android 1.6) dan kemudian tambahkan kembali file JAR eksternal.
sumber
Saya mengalami masalah ini karena Android-Maven-plugin di Eclipse tampaknya tidak mengenali referensi transitif dan referensi yang direferensikan dua kali dari beberapa proyek (termasuk proyek perpustakaan Android), dan memasukkannya lebih dari satu kali. Saya harus menggunakan hocus-pocus untuk mendapatkan semuanya termasuk hanya sekali, meskipun Maven seharusnya mengurus semua ini.
Sebagai contoh, saya memiliki global library atau core-core library, yang juga digunakan oleh globalmentor-google dan globalmentor-android (yang terakhir adalah perpustakaan Android). Di globalmentor-android
pom.xml
saya harus menandai ketergantungan sebagai "disediakan" serta dikeluarkan dari perpustakaan lain di mana ia dimasukkan secara transitif:Kemudian dalam aplikasi terakhir
pom.xml
saya harus menggunakan tipu daya yang tepat untuk memungkinkan hanya satu jalur inklusi --- dan juga tidak secara eksplisit termasuk perpustakaan inti:sumber
<extractDuplicates>true</extractDuplicates>
di android-maven-plugin memperbaiki masalahmvn install
tetapi tidak untuk dimvn deploy
mana saya mendapatkan kesalahan yang dijelaskan ... benar-benar anehDalam hal ini
project-> properties-> java build path -> dalam urutan dan ekspor tab -> hapus centang android-support-v4.jar
sumber
Bersihkan proyek saja
Jika ini tidak berhasil coba solusi lain
sumber