Pertanyaan "Konversi ke format Dalvik gagal dengan kesalahan 1" pada JAR eksternal


Dalam aplikasi Android saya di Eclipse saya mendapatkan kesalahan berikut.

PENGECUALIAN TERSEBUT TERSEBUT:
  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 memungkinkan. Saya bahkan mencoba mengubah ke Android 1.6 bukan 1.5 (versi saat ini saya gunakan).


880


asal


Jawaban:


Pergi ke Proyek »Properti» Java Build Path »Perpustakaan dan hapus semua kecuali" Android X.Y "(dalam kasus saya Android 1.5). klik OK. Pergi ke Proyek »Bersihkan» Bersihkan proyek yang dipilih di bawah ini »pilih proyek Anda dan klik OK. Itu seharusnya berhasil.

Mungkin juga Anda memiliki file JAR yang terletak di suatu tempat di folder proyek Anda (saya telah menyalin file Admob JAR ke folder src saya) dan kemudian menambahkannya sebagai Java Path Library. Itu tidak muncul di bawah Paket Explorer, jadi Anda tidak menyadarinya, tetapi itu dihitung dua kali, menyebabkan kesalahan Dalvik yang menakutkan 1.

Alasan lain yang mungkin bisa menjadi konflik nama paket. Misalkan Anda memiliki paket com.abc.xyz dan kelas bernama A.java di dalam paket ini, dan proyek perpustakaan lain (yang ditambahkan ke ketergantungan proyek ini) yang berisi hal yang sama com.abc.xyz.A.java, maka Anda akan mendapatkan kesalahan yang sama persis. Ini berarti, Anda memiliki beberapa referensi ke file yang sama A.java dan tidak bisa membangunnya dengan baik.

Dengan cara lain ini dapat terjadi jika Anda secara tidak sengaja atau dengan sengaja mengedit / menambahkan sesuatu di file path kelas secara manual. Dalam kasus tertentu kita dapat menambahkan jalur 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.


821



Saya memecahkan masalah.

Ini adalah konflik file JAR.

Sepertinya saya memiliki dua file JAR di buildpath saya yang menyertakan paket dan kelas yang sama.

smack.jar dan android_maps_lib-1.0.2

Menghapus paket ini dari salah satu file JAR memecahkan masalah.


270



Solusi Windows 7:

Dikonfirmasi masalah disebabkan oleh baris perintah ProGuard dalam file
[Direktori Instalasi Android SDK] \ tools \ proguard \ bin \ proguard.bat

Edit baris berikut akan menyelesaikan masalah:

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*

untuk

call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

125



Anda dapat menyelesaikan masalah ini dengan mudah (dengan Eclipse Android Developer Tools, Build: v22.0.1-685705) dengan mematikan menu> "Project"> "Build Automatically" saat mengekspor (un) menandatangani aplikasi Android. Setelah itu, jangan lupa untuk menyalakannya lagi.


94



Jika Anda memiliki revisi ADT 12+, Anda harus memperbarui proguard Anda dari 4.4 -> 4.6 (seperti yang dijelaskan sini). Juga, Anda harus meninggalkan ... \ bin \ proguard.bat file dalam bentuk asli.

Cukup unduh dari web, dan salin folder lib dari paket unduhan ke:

[Direktori Instalasi Android SDK] \ tools \ proguard \ lib


53



EDIT (solusi baru):

Sepertinya solusi sebelumnya hanya sebuah jalan pintas. Saya akhirnya berhasil memperbaiki masalah secara permanen: Dalam kasus saya ada ketidakcocokan dalam file-file pendukung-v4 di proyek saya dan dalam proyek Facebook yang direferensikan dalam proyek saya.

Saya menemukan kesalahan ini dengan melakukan Lint Check (Android Tools / Run Lint: Periksa Kesalahan Umum)

Solusi saya sebelumnya:

Saya sudah mencoba solusi apa pun di situs ini - tidak ada yang membantu !!!

Akhirnya saya menemukan jawabannya di sini: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4

Langkah mudah:

Buka Project -> hapus centang Build Secara Otomatis

Pergi ke Proyek -> Bersihkan ..., bersihkan baik proyek perpustakaan dan Anda   proyek aplikasi

Ekspor aplikasi Anda sebagai APK yang ditandatangani sementara Build Secara Otomatis masih   cacat


40



Berikut skenario lain, dan solusinya:

Jika Anda mengalami masalah ini baru-baru ini setelah memperbarui ADT untuk Eclipse:

  1. Dalam proyek aplikasi Anda, periksa setiap folder sumber yang terhubung yang menunjuk ke proyek perpustakaan Anda (mereka memiliki nama dalam bentuk "LibraryName_src").
  2. Pilih semua proyek tersebut, klik kanan, pilih "Bangun Path"->"Hapus dari Path Build".
  3. Pilih "Juga lepaskan tautan folder dari proyek", dan klik"iya nih".
  4. Bersihkan, rekondisi dan gunakan ulang proyek.

Tampaknya alasannya adalah bahwa beberapa versi sebelumnya dari folder sumber proyek perpustakaan ADT terhubung ke proyek "anak", dan kombinasi ADT / Dex saat ini tidak kompatibel dengan solusi itu lagi.

EDIT: ini dikonfirmasi oleh entri Blog Dev Android, khususnya yang ini - lihat paragraf 8 dan seterusnya.


30