Dex çalıştırılamıyor: Birden fazla dex dosyası Lcom / myapp / R $ dizisini tanımlar;


391

ADT14'e güncellediğimden beri projemi artık inşa edemiyorum. Güncelleme önce iyi bina oldu.

Hata:

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

Benzer sorunlar bildirildi ve ben de dahil önerileri denedim

  • Yeniden başlatma Eclipse .
  • Projeyi temizleme ve yeniden oluşturma - "Project-> Otomatik Olarak Oluştur" seçeneğini devre dışı bırakın, ardından "Temizle" ve "Oluştur" projesini çalıştırın, sonra çalıştırmayı deneyin. "Otomatik Olarak Oluştur" seçeneğini Açık olarak sıfırlayın
  • AndroidGeliştirici Araçlarını Yeniden Yükleme
  • Eclipse'i yeniden yükleme (en son sürüm 3.7.1'e güncellendi)
  • Dosya sisteminden içe aktarılan yeni bir proje oluşturuldu
  • Yıkımdan yeni bir proje oluşturdu.

Windows veya Mac üzerinde çalışıyordunuz .. çünkü aşağıdaki cevapları takip etmek istiyorum ama Mac üzerinde çalışacaklar mı emin değilim .. teşekkürler
McLan

kütüphane projesini içe aktardıysanız ve aynı zamanda lib klasöründe kütüphane JAR'ı içe aktardıysanız, jar dosyasını lib klasörünüzden ve ayrıca [Oluşturma Yolu -> Oluşturma Yolunu Yapılandır] 'dan kaldırmanız gerekir. Ve işe yarayacak.
Mehul

Aşağıdaki linkteki cevabıma bak. stackoverflow.com/a/38391449/3702595
Sattar Hummatli

Yanıtlar:


462

Ben aynı sorun vardı, oldukça tuhaf çünkü sadece Eclipse kullanırken (ama Ant ile Tamam) oldu. Ben böyle giderdim:

  • Üzerine sağ tıklayın Project Name
  • Seç Build Path->Configure Build Path
  • In Java Build Path, sekmesine gidinOrder and Export

  • .jarKitaplığınızın işaretini kaldırın

Sadece bazen: Sipariş ve Dışa Aktar sekmesinde orada herhangi bir kavanoz kütüphanem yoktu, bu yüzden işaretsiz Android Özel Kütüphaneler öğem var. Şimdi projem devam ediyor.


Projemde, derleme yolumdaki sdk dizininden destek kitaplığını ekliyordum ve karınca yapısının desteklenmesi için "libs" klasöründe destek kitaplığı vardı. Birinin işaretini kaldırdım ve sorunum düzeltildi.
Chris Feist

20
Son kez inşa etme ve başlatma arasında, projemde gizemli bir şekilde yeni bir kütüphane ortaya çıktı: Zaten referansta bulunduğum destek kütüphanesini içeren "Android Özel Kütüphaneler". Böylece bu gizemli "çoklu dex dosyaları ____ tanımlar" ortaya çıktı. Java Derleme Yolunu kontrol etmek ve bu yeni öğeyi görmek ve orijinal olarak dahil edilmiş destek kütüphanesinin işaretini kaldırmak benim için sorunu çözdü.
Tom Pace

9
Çok teşekkürler. Bu doğru çözüm. Tutulmanın neden bu kadar çok hataya sahip olduğunu gerçekten bilmiyorum. Şimdi durum sadece 2 saat kodlayabilirim ve 6 saat bu tür gereksiz sorunlara çözüm bulmak zorundayım.
roy mathew

44
Sipariş ve Dışa Aktar sekmesinde orada herhangi bir kavanoz kütüphanem yoktu, bu yüzden kontrol edilmemiş öğem var Android Private Libraries. Şimdi projem devam ediyor.
Junior Mayhé

1
Benim durumumda ben vardı Dublicate 'android-support-v4.jar' arasında. İ zaman silinen o, hata gitti
ymerdrengene

94

Sorunum, bazı dizinleri ve araçların önceki sürümlerinden kalan dosyaları temizledikten sonra çözüldü. ADT Rev 14, ikili dosyaların depolandığı yeri değiştirir . Tüm bin dizinini sildim, Eclipse'i yeniden başlattım ve yapıyı temizledim ve yeniden oluşturmaya zorladım. Başlangıçta hile gibi görünüyordu ama sorun bir sonraki çalıştırmadan sonra geri geldi.

Sonunda bin dizinimin proje oluşturma yoluna eklendiğini keşfettim. Bin'i oluşturma yolundan hariç tuttum ve yukarıdaki adımları tekrarladım. Bu benim sorunumu çözdü.


42
Ne halt Google. Bu sorun, R15 ile bile geri gelmeye devam ediyor.
terry

2
Son çözümü de dahil etmek için yukarıdaki çözümü düzenledim. Artık kalıcı olarak çözüldü.
terry

7
Kısacası, kimse gerçekten sorunun neden olduğunu, ne anlama geldiğini ve nasıl düzeltileceğini bilmiyor (Java Derleme Yolunda herhangi bir bin dizini yok). Bu nedenlerle, R9 ile kalıyorum R15 için güncelleştirme kaçınılmalıdır. Ama hala benzer bir sorun yaşıyorum , görünürde hiçbir ipucu yok. Herhangi bir ipucu veya yardım büyük mutluluk duyacağız.
Bill The Maymun

6
@BillTheApe - kabul etti. Bu sinir bozucu ötesinde, pahalı.
Tom Redman

@TRedman Sonunda sorunu çözmeyi başardım . Nedenini anlamadan. Gülme. LOL +1.
Bill The Ape

50

[Benim için çözüldü]

Eclipse proje özellikleri-> Java derleme yolu-> Sipariş verme ve verme

Android özel kitaplıklarının işaretini kaldırın.


4
Benim durumumda yardımcı olmadı
redux

1
THANX A LOT bana yardım etti
madhu527

46

Yukarıdakilerin hiçbiri yardımcı olmadı. Sonunda basit bir sorundu.

FacebookSDK ve ViewPagerIndicator'ı kütüphane projeleri olarak kullanan bir projem vardı. Hepsi Android API 16 üzerine inşa edildi ve bu iki proje android destek kütüphanesi vX'i kullandı (X 16 değil!)

Her iki projeye de harici bir JAR ekledim ve \ extras \ android \ v4'e işaret ettim ... Ve ayrıca lbs klasörlerinde sahip olduğum v4 kavanozunu kaldırdım.

Tüm projeleri temizleyin ve yeniden oluşturun.

Voilla!

Aldığım tam hata: Dex çalıştırılamıyor: Birden fazla dex dosyası Landroid / support / v4 / view / PagerAdapter; Dalvik formatına dönüştürme başarısız oldu: Dex çalıştırılamıyor: Birden fazla dex dosyası Landroid / support / v4 / view / PagerAdapter;


36

Bu sorun bana oluyordu, lbs klasörümde gson-2.2.2.jar adlı harici bir .jar vardı, ancak bazı nedenlerden dolayı gson-2.2.2.jar ve gson-2.2.2.jar ( 1), ikincisini sildim ve projem tekrar iyi inşa edildi.


2
Libs klasöründe eski bir jar dosyası olduğunda ve aynı çalışma alanındaki daha yeni bir kavanoza bağladığımda benzer bir sorun yaşadım. ADT aynı sembol için birden fazla tanım bulduğunda böyle bir hata verir. Libs klasöründeki eski jar dosyasını silmek benim için düzeltti.
phyatt

Dış kavanoz sorunun nedenlerinden biridir ve benim durumumda da böyle oldu. Daha /libsönce bir deneyden kalan bir kavanoz vardı , hem Kütüphane Projesi hem de ondan oluşturulan .jar ile sonuçlandı. Bu kavanozu silmek /libs, sorunu çözer. +1
ripopenid

31
  1. Tutulmayı kapatın.
  2. Proje klasörünüzdeki bin klasörünü silin.
  3. Tutulmaya başlayın ve projenizi temizleyin.
  4. Şimdi koş ve sorun gitmiş olmalı

Mateus Viccari'nin cevabı sorunumu çözdü, yinelenen kütüphaneleri kaldırdım ve çekicilik gibi çalışıyor ..
swiftBoy

Benim manifest fileiçin çalıştı. Dizinden tutulma ile kaldırılırsa bin, manuel olarak ekleyin ve projeyi tekrar temizleyin.
Mehul Joisar

Benim için çalışıyor. Ayrıca iki farklı yerde aynı .jar'a sahip olmadığınızdan emin olun (benim durumumda hem bir kütüphane projesinde hem de bu kütüphane projesine referans veren bir projede bulundum. Eclipse bir sebepten dolayı otomatik olarak ekledi)
Magnus W

Benim için ENTIRE çalışma alanını temizledim. Sadece projeyi temizlemek yeterli değildi.
Sorunumun

Benim durumumda yardımcı olmadı
redux

26

Diğerlerinin de belirttiği gibi, bu, derleme yolunuzda aynı sınıfın birden çok kopyasına sahip olduğunuzda oluşur - bin yolunuzu sınıf yolunuzda dahil etmek bu sorunu garanti etmenin bir yoludur.

Benim için bu, libs / klasörüne android-support-v4.jar eklediğimde ve bir şekilde tutulmanın bin / classes / android-support-v4.jar'a ikinci bir kopya eklediğinde meydana geldi.

Bin / sınıflardaki fazladan kopyayı silmek sorunu çözdü - Eclipse'in neden orada bir kopya yaptığını bilmiyor.

Bunu aşağıdakilerle test edebilirsiniz:

grep -r YourOffendingClassName Uygulamanız | grep jar


23

Benim için projeye sağ tıklıyorum -> Yol oluştur -> Yapı yolunu yapılandır -> Kütüphaneler -> bağımlılığı kaldır

sonra çalışır.


20

Bu hata, aynı sınıf adlarını içeren iki kavanozunuz varsa oluşabilir, örneğin iki kütüphanem vardı: jsr311-api-1.1.1.jar ve jersey-core-1.17.1.jar, her ikisi de javax.ws sınıfını içerir .rs.ApplicationPath. Ben jsr311-api-1.1.1.jar kaldırdım ve iyi çalıştı.


1
Bu benim için mükemmel bir çözüm. Aynı libs'i iki kez ekledim. Teşekkürler.
swiftBoy

19

Android-support-v4.jar üzerinde zaten bağımlılıkları olan bir projeye facebooksdk.jar ekledikten sonra bu hatayı alıyordum . Yana facebooksdk.jar zaten kendi içerir android-destek-v4.jar çatışmaları vardı. Daha önceki android-support-v4.jar dosyasını Properties / Java Build Path / Libraries projelerinden kaldırmak benim için sorunu çözdü.


18

Git Proje / özellikleri ve Java Yapı Yol ve işaretlenmemiş Android Özel Kütüphaneler .

Bu, bu tür bir hata için başka bir durumdur.

Bitti


15

Android bağımlılıklarını derleme yolundan kaldırdım ve işe yaradı.

Düzenleme: yoksay. Benim maven bağımlılıkları ve libs klasöründe aynı kavanoz vardı. Lib klasöründeki dosyayı kaldırdım.


2
Android Bağımlılıklarını derleme yolundan kaldırmak projemi bozdu. Neyse ki, proje> Android Araçları> Proje Özelliklerini Düzelt'i sağ tıklatarak geri yüklemek kolaydı.
azdev

Bazı durumlarda android bağımlılıklarını kaldırmak ve yeniden oluşturmak bazı sorunları çözer. Ama benim düzenlememde olduğu gibi durum böyle değil.
Hadi Tok

9

Muhtemelen r14 yüklediniz , bu hata platform araçları güncellemesi nedeniyle oluşmuş olabilir, sdk'nizi yeniden yüklemeniz gerekir


SDK'mı tamamen patlattım ve indirilen zip dosyasından yeni yükledim ve daha sonra Android API'larını Android SDK Yöneticisi ile yükledim. Büyük umutlarım vardı ama sorun devam ediyor.
terry

Windows'ta bir .android gizli klasörü var, bunu da silmelisiniz.
Reno

aynı sorun var
McLan

9

Benim için bu sorun sadece projeme dahil olan Android kütüphane projeleri olduğu sürece var. Yani tüm kütüphaneleri kaldırıp dediğim gibi yaptığımda uygulamamı tekrar çalıştırabilirim. Eğer dahil kütüphaneler varsa bin kaldırma hilesi bile kazandı.

ADT 14'ü birkaç günlüğüne kullandığım için bu hatanın neden bugün ortaya çıktığını anlamıyorum. Peki beni mutlu etti başka hatalar vardı.


Çözümlerin çoğu bazı vudu şeylerine benziyor ... :)
Jasper

8

Bin klasörünü silmek yeterli değildi, ben de gen klasörünü sildim. Sonra iki yeniden inşa sonra dex hata mesajı gitti.


8

Project Explorer'da projeyi seçin , sağ tıklayın ve Özellikler -> Java Derleme Yolu -> Kaynak -> Kaynak klasörler için çıktı klasörlerine izin ver kutusunu işaretleyin


Davamda yardım etmedim.
redux

8

Temelde aynı sorunla karşı karşıyaydım. BIN klasörünü sildim, sonra eclipse'den Order and Import için kullanılmayan jar dosyalarını kaldırdım. Bundan sonra ÇALIŞTI


7

Bu partiye geç kaldım, ancak daha sonra tekrar bulabilmek için kendi deneyimimi ekliyorum :)

Android sdk ve eclipse reklamlarını yükselttikten sonra bu sorunla karşılaştım. Hiçbir yükseltme cezasız kalmaz!

Benim için sorun kütüphane projeleriyle ilgiliydi, uygulamam hem standart java projeleri hem de android kütüphane projeleriyle ilgili. Java Build Path ayarlarının Kaynak Kütüphanesi'nde android kütüphane projeleri src ve res klasörlerini içerdiğini fark ettim (kaynakta bin, binc ve res olmaktan bahseden herkese vekiller de bir sorun oldu.)

Yani çözüm şuydu:

  1. Başvuru yapılan tüm Android kitaplıkları kaynak ve proje referanslarını hem Kaynak listesindeki hem de Proje listesindeki ayarların Java Derleme Yolu bölümünden kaldırın
  2. Saf java bağımlılıklarının Proje listesinde listelendiğinden ve Sınıflar apk'ye dahil edilecek şekilde Sipariş ve Dışa Aktar sekmesinde işaretlendiğinden emin olun
  3. Tüm Android kitaplığı bağımlılıklarının, proje özelliklerinin Android bölümünde, kontrol edilen SDK sürümlerinin altındaki kitaplık bölümünde listelendiğinden emin olun.

Tüm bunları diğer çözümlerden bir araya getirmek için yoldaydı! Uf!


İyi ifade! Birçok işten sonra aynı sonuçlara vardım. Sadece kütüphane projelerinizden herhangi biri diğer kütüphane projeleri veya saf Java bağımlılıkları içeriyorsa, hepsinin aynı şekilde eklenmesi gerektiğini eklemek istedim, aksi takdirde bu hata ortaya çıkacaktır. Tüm projeleriniz için yukarıdaki kurallara uyarsanız, herhangi bir sorununuz olmamalıdır.
strangeluck

1
Bir şey daha var ... Görünüşe göre bir projenin veya kütüphane projesinin Android Özel Kütüphanelerini dışa aktarmanız gerekmiyorsa. Birden fazla proje veya kütüphane projesi dışa aktarırsa, birden çok dex dosyası hatası alırsınız.
strangeluck

6

Adt 14'ten 15'e yükselttiğimde işe başladım ve işe almak için sadece .eclipse klasörünü (ayarlarımla birlikte) silip adt 15'i yeniden yükledim.


6

Terrys'in bin dizinini ve Larrys'i ANT dizininin konumu hakkında silme hakkındaki cevabı okuduktan sonra:

Projelerim BIN dizininde bulunan dosyaları BIN / CLASSES'a taşıdım ve im çalıştırıyorum.

Düzenleme 1 Sonra ikinci çalıştırmada başarısız oldu ... doh

Düzenle 2 Yani kapalı Eclipse dosyaları orijinal konumuna geri taşıdı ve tüm çalışıyor ... um ne? Bunun neden işe yaradığını bilmiyorum. Herhangi bir değişiklik olursa güncellenecektir.

Edit 3 Yedeklerimden, BIN dizininde ve BIN / CLASSES'te gerçekten yinelenen dosyalar olduğunu belirttim.

Yani cevap: her iki konumda da dosya yok. En azından benim için bu işe yaradı.


Cevapları azaltmaya çalışın: Yararlı sonuç ve ardından gerçekleri destekleme . Tarih anlatımı AMAP'dan kaçının; İnsanlar bunu "yanıt değil" diye düşünerek işaretleme eğilimindedir.
Brock Adams

şerefe, benim ramblings daha net yapmak için herhangi bir yardım takdir
HostMyBus

6

Eclipse.ini dosyanızı değiştirin ve maksimum bellek parametresini

-Xmx1024m

Ardından bilgisayarınızı yeniden başlatın.

Benim için çalıştı.


1
İlgili bir şey yok, daha fazla bellek vermek bağımlılık sorunlarını
çözmüyor

6

inandığım bir çözüm buldum ??

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

Nerede diyor ki: "Lcom / coremedia / iso / AbstractBoxParser $ 1" sadece ithal ettiğim kütüphanenin yeri olan soruna neden oluyordu. Com.codemedia.iso.AbstractBoxParser $ 1.class ve .AbstractBoxParser.class .... 'ı aradılar. benim için artık çatışma yok! (ayrıca güncelleme veya ek indirme yok)


6

Libs klasörümde Cordova .jar dosyalarının iki farklı sürümü vardı, kullanmadığım bir dosyayı sildim ve hemen çalıştı. Tuhaf çünkü daha önce fark etmedim ve daha önce çalıştı ve sonra aniden çalışmayı bıraktı ...



5

Benim için çözüm:

  1. KODUNUZU YEDEKLEYİN!
  2. Proje çalışma alanınıza gidin (projenize değil) ve aşağıdaki komutları çalıştırın:

    dev1: çalışma alanı $ cd ~ / Belgeler / çalışma alanı / .metadata / .plugins / dev1: çalışma alanı $ rm -rf org.eclipse.core.resources

  3. Eclipse dizininize gidin ve şu komutu yazın:

    dev1: eclipse $ ./eclipse açık

  4. Eclipse boş bir çalışma alanı ile başlayacak - endişelenmeyin, projeleriniz hala orada. Basit kaynak mevcut yeni bir proje oluşturmak ve şeyler sos olmalıdır.

Aldığım tam hata: [2012-02-07 14:15:53 ​​- Dex Loader] Dex yürütülemiyor: Birden fazla dex dosyası Landroid / support / v4 / view / PagerAdapter; [2012-02-07 14:15:53 ​​- ProjectCloud] Dalvik formatına dönüştürme başarısız oldu: Dex yürütülemiyor: Birden fazla dex dosyası Landroid / support / v4 / view / PagerAdapter tanımlamaktadır;


5

AndroidManifest'te belirtilen aynı paket adına sahip birkaç kütüphane projem var (bu nedenle R.java tarafından yinelenen alan adları oluşturulmaz). Manifest.java birden çok kez oluşturulmadı böylece hatayı kaldırmak için tüm kütüphane projeleri için AndroidManifest.xml izinleri ve faaliyetleri kaldırmak zorunda kaldı. Umarım bu birine yardımcı olabilir.


4

Şanssız diğer tüm önerileri denedikten sonra, projelerim 'bin' dizinimin tüm içeriğini sildim, sonra tekrar tutulmayı çalıştırdım ve işe yaradı.


4

Kütüphane olmayan bir projeyi bir kütüphane projesine dönüştürdüm, ancak libs klasöründe önceden oluşturulmuş bir jar dosyası vardı. Bu jar dosyasını kaldırmak, bu hatanın ortadan kalkmasına neden oldu.


4

Ben aynı sorunla karşı karşıya sonra benim app iki kez yüklenen bazı kavanoz dosyaları iterek gördüm dolayısıyla birden fazla dex hatası.


4

[Benim için çözüldü]

"JAR dosyasını" yinelenen kitaplığı kaldırarak BuildConfig.java dosyasını, Clean project ve onun çalışmalarını kaldırarak.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.