Harici JAR'da "Dalvik formatına dönüşüm 1 hatasıyla başarısız oldu"


908

Eclipse'deki Android uygulamamda aşağıdaki hatayı alıyorum.

BEKLENMEYEN ÜST DÜZEY İSTİSNA:
java.lang.IllegalArgumentException: zaten eklendi: Lorg / xmlpull / v1 / XmlPullParser;
....
Dalvik formatına dönüşüm hata 1 ile başarısız oldu

Bu hata yalnızca projeme belirli bir harici JAR dosyası eklediğimde görünür. Olası çözümü uzun süre aradım, ancak olası çözümlerin hiçbiri işe yaramıyor.

Hatta 1.5 (Android kullandığım sürüm) yerine Android 1.6'ya geçmeye çalıştım.


Bu aktris , çalışma alanınızda kütüphane projesi kullanmanız durumunda bu hatayı düzeltmenize yardımcı olabilir.
Nguyen Minh Binh

4
Bunu denedim ve aynı hata verdi. Sonunda bunu Properties-> JavaBuildPath-> Projects içindeki kütüphaneyi ekleyerek ve kütüphaneyi oraya ekleyerek düzelttim. Buna "Derleme yolunda gerekli nesneler:" denir.

27
Bu sorun benim için acımasız hale geldi. Android kodlamadan vazgeçmek neredeyse yeterli. Çözümlerin hiçbiri benim için işe yaramıyor. Sadece Dalvik hata 1 ile başarısız ihracat sürekli denemek zorunda ve sonunda başarılı olacaktır. Bir sürüm oluşturma işlemi 15-30 dakika sürer. Tam bir felaket.
Anthony

Bir dosya paylaşım yazılımı ile bir çalışma alanında iki bilgisayar kullanıyorsanız, bazen çalışma alanı-> proje-> bin-> com klasörünü com 1, com 2 olarak çoğaltır. 1 veya 2 ile her şeyi silin, projenizi temizleyin ve hazırsınız gitmek.
Ozan Atmar

Yanıtlar:


826

Proje »Özellikler» Java Oluşturma Yolu »Kitaplıklar'a gidin ve" Android XY "(benim durumumda Android 1.5) dışındaki her şeyi kaldırın. Tamam'ı tıklayın. Projeye gidin »Temizle» Aşağıda seçilen projeleri temizle »projenizi seçin ve Tamam'a tıklayın. Bu işe yaramalı.

Proje klasörlerinizde bir yerde bulunan bir JAR dosyanız da olabilir (Admob JAR dosyasını src klasörüne kopyaladım) ve sonra bir Java Yolu Kütüphanesi olarak ekledim. Paket Gezgini altında görünmez, bu yüzden fark etmezsiniz, ancak iki kez sayılır ve korkunç Dalvik hatası 1'e neden olur.

Başka bir olası neden de paket adı çakışmaları olabilir. Bir paketin com.abc.xyzve A.javabu paketin içinde bir sınıfın olduğunu ve bunu içeren başka bir kütüphane projesinin (bu projenin bağımlılığına eklenen) olduğunu varsayalım com.abc.xyz.A.java, o zaman aynı hatayı alacaksınız. Bu, aynı dosyaya birden fazla referansınız olduğu anlamına gelirA.java düzgün bir şekilde oluşturamayacağınız .

Diğer yollarla bu, yanlışlıkla veya bilerek sınıf yolu dosyasında herhangi bir şeyi manuel olarak düzenlediğinizde / eklediğinizde oluşabilir. Bazı durumlarda, java doc oluşturmak için sınıf yolu dosyasına elle android.jar yolu ekleyebiliriz. kod hala iyi çalışır. hala biri varsa lütfen bunu kontrol edin.


4
Aynı sorunu yaşadım ve user408841 tarafından yukarıdaki adımlar benim için çalıştı.
Arunabh Das

112
Selam. Sadece "Proje» Temizle »Aşağıda seçilen projeleri temizle» projenizi seçin ve Tamam'ı tıklayarak benim için düzeltir. 1. biti görmezden gelmek
Kurru

79
Bu çözümle oldukça kafa karıştırıyorum. Tüm jar dosyalarını ve kitaplıklarını kaldırırsanız, projeyi başarıyla nasıl derleyeceksiniz?
Cheok Yan Cheng

3
Bunun benim için çalışmasının tek yolunun TÜM PROJELERİ TEMİZLEMEK olduğunu gördüm! Özellikle rahatsız edici projenin bağlı olduğu projeler.
Roy Hinkley

7
.NET'ten gelen Android geliştirmede yeniyim ve dürüst olmak gerekirse, bu hata onunla olan deneyimimi özetliyor. Cidden ... bu hata mesajıyla ne yapmak istiyorsun? Tamamen anlamsız. 'Dalvík' ?? Sen ne?? Beni görsel stüdyoya geri götür: p
David Masters

271

Sorunu çözdüm.

Bu bir JAR dosyası çakışmasıdır.

Yapı yolumda aynı paketi ve sınıfları içeren iki JAR dosyası var gibi görünüyor.

smack.jar ve android_maps_lib-1.0.2

Bu paketi JAR dosyalarından birinden silmek sorunu çözdü.


18
+1 - Özet olarak, bu bir JAR dosyası çakışmasıdır. Özellikle, bu herhangi iki JAR dosyasında bir çakışma olabilir . Benim durumumda, çakışma jackson-all-1.7.4.jar, jackson-core-asl-1.5.4.jar ve jackson-mapper-asl-1.5.4.jar arasındaydı. İki 1.5.4 JAR'ı çıkardım ve 1.7.4'ü bıraktım.
jmort253

Kendi projenize eklediğiniz herhangi bir kütüphane projesinde kavanozlar varsa, ScoreloopUIprojeyi AndEngine oyunuma nasıl eklediğim gibi , bu kavanozlar da kendi projenizin yapım yolunda olmasalar bile sizinkilere müdahale ederler.
pqn

1
Android-sdk / platformlar / android-10 / android.jar'ı .classpath içinde manuel olarak belirtmiştim, sonra hem android.jar'ın çakışmasına neden olan proje özelliklerinde 2.3.3'e (Android 10) geçtim. Java Oluşturma Yolu'ndaki
fazlalığı kaldırmak

2
Benim tarafımda çatışma, git iki kez dahil olan android destek paketini içeren ActionbarSherlock'tan geldi.
Tobias

Sadece bilgi için: Benim durumumda, başarısızlık nedeniyle, farklı android hedefinin her iki projede de aynı olmamasıydı: android: targetSdkVersion = "xx"
Andreas Mattisson

126

Windows 7 Çözümü:

Sorunun dosyadaki ProGuard komut satırından kaynaklandığını doğruladı
[Android SDK Kurulum Dizini] \ tools \ proguard \ bin \ proguard.bat doğruladı

Aşağıdaki satırı düzenlemek sorunu çözecektir:

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

için

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

Bu benim için işe yaramadı, ancak koruma satırını default.properties dosyamdan yorum yapmak hatayı ortadan kaldırdı. benim sorunum bir şekilde korunmakla ilgili gibi görünüyor. i proje ihracat çalışırken sadece "Dalvik formatına dönüşüm hata 1 başarısız oldu" alıyordu. Düşüncesi olan var mı?
Ben H

Yukarıdaki öneriyi tekrar denedim ve LVL kütüphane projemi kaldırıp yeniden ekledim ve şimdi çalışıyor. tam olarak ne düzelttiğinden emin değilim, ama işe yarıyor. tanrıya şükür. Bu saatlerce boşa harcadım.
Ben H

Windows Vista ve bu benim için çalıştı. Daha önce progra ~ 2, yeniden yükleme, proje temizleme, kütüphaneleri kaldırma ve sabitleme, vb SDK yolunu değiştirmeye çalışmıştı ... Yani Noah teşekkürler!
Mudar

Çok teşekkür ederim Noah, bu benim için de Windows 7'de çalıştı. Hata ADT'yi sürüm 12'ye güncelledikten sonra başladı.
Kevin

Windiws 7'deki
sorunumu çözdüm

94

İmzalı Android uygulamasını dışa aktarırken menü> "Proje"> "Otomatik Olarak Oluştur" seçeneğini kapatarak bu sorunu kolayca (Eclipse Android Developer Tools, Build: v22.0.1-685705 ile) çözebilirsiniz. Bundan sonra, tekrar açmayı unutmayın.


2
Bu benim durumumda çözdü. Sorun, aksi halde, kesin bir neden olmadan (örn. Kötü kavanoz veya yol) ortaya çıkar
Dirk Conrad Coetsee 4:13

Bu beni deli ediyordu! Benim için işe yarayan tek çözüm. Neden acaba.
PrivusGuru

1
Bu benim için çözüldü - diğer çözümler de yardımcı olabilirdi, ama bu işe başlamadan önce sonuncuydu.
pertz

Ben bulabildiğim her nihayet 4 saat geçirdim ve sonunda bu bir var. Teşekkürler - sorunu hemen çözdü.
Squonk

Çok basit bir çözüm, ama işe yarıyor! Eclipse ile birkaç saat anlamsız savaşımı kurtardım. Daha karmaşık bir çözümü denemeden önce deneyin.
fragon

53

ADT revizyonu 12+ kullanıyorsanız, korumanızı 4.4 -> 4.6'dan ( burada açıklandığı gibi ) güncellemelisiniz. Ayrıca, ... \ bin \ proguard.bat dosyasını orijinal formda bırakmalısınız.

Sadece web'den indirin ve indirilen paketten lib klasörünü kopyalayın:

[Android SDK Kurulum Dizini] \ tools \ proguard \ lib


3
Bu, birden fazla ADT'de benim sorunumdu. Koruma JAR'larının indirilmesi ve değiştirilmesi çalışır.
Bay S

Vay, teşekkürler, bu benim için düzeltildi, ancak bazı uyarıları da temizlemem gerekiyordu. stackoverflow.com/q/4525661/38258
Nick Gotch

Proguard versiyonunu 4.4'ten 4.9'a değiştirdim, bundan sonra sorunum hala çözülmedi.
Hiren Patel

1
Bunu sadece kendim yapmak zorunda kaldım, 4.7 -> 4.11'den (şu andan itibaren en son: sourceforge.net/projects/proguard/files ). Ben sadece eski <sdk>/tools/proguarddir yeniden adlandırdı ve tam sıkıştırılmamış proguard4.11dir eski yola taşındı . İşte bu kadar! Şimdi bir önceki saatimi geri
alabilseydim

1
Teşekkürler! bu benim sorunumu doğru çözer. Benim sdk sdk yöneticisinden güncelleyin ve koruma api düzeyi 11 ile birlikte gelen özgün sürümüne sıfırlandığında sorunum neden olur. Korumayı güncelledikten sonra, en son sürüme jar. ve çalışıyor! Referansım: java.dzone.com/articles/my-reminder-how-fix-conversion
mmw5610

41

EDIT (yeni çözüm):

Önceki çözüm sadece bir baypas gibi görünüyor. Sonunda sorunu kalıcı olarak çözmeyi başardım: Benim durumumda, projemde ve projemde referans verilen Facebook projesinde android-support-v4 dosyalarında bir uyumsuzluk vardı.

Lint Kontrolü'nü gerçekleştirerek bu hatayı buldum (Android Araçları / Lint'i Çalıştır: Genel Hataları Kontrol Et)

Önceki çözümüm:

Bu sitede olası bir çözümü denedim - hiçbir şey yardımcı olmadı !!!

Sonunda burada bir cevap buldum: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4

Kolay adımlar:

Proje'ye gidin -> Otomatik Olarak Oluştur'un işaretini kaldırın

Proje -> Temizle ... seçeneğine gidin, hem kütüphane projesini hem de uygulama projenizi temizleyin

Otomatik Oluşturma devre dışı bırakılırken uygulamanızı imzalı bir APK olarak dışa aktarma


Teşekkür ederim adt eclipse 23 kullanarak benim cocos2dx js projesi için benim için çalıştı
snowflakes74

Hata: 1 numaralı bağımsız değişkende bilinmeyen '0409' seçeneği
Iman Marashi

30

İşte başka bir senaryo ve çözüm:

Eclipse için ADT'yi güncelledikten sonra son zamanlarda bu sorunla karşılaşırsanız:

  1. Uygulama projenizde, kitaplık projelerinizi işaret eden bağlı kaynak klasörleri kontrol edin ("LibraryName_src" biçiminde adları vardır).
  2. Tüm bu projeleri seçin, sağ tıklayın, " Oluşturma Yolu " -> " Oluşturma Yolundan Kaldır " ı seçin.
  3. " Ayrıca klasörün projeyle bağlantısını kaldır " ı seçin ve " Evet " i tıklayın .
  4. Projeyi temizleyin, yeniden oluşturun ve yeniden konuşlandırın.

Görünüşe göre ADT'nin daha önceki bazı sürümleri Kütüphane proje kaynak klasörlerinin "alt" projelere bağlanmış olması ve mevcut ADT / Dex kombinasyonu artık bu çözümle uyumlu değil.

DÜZENLEME: Bu, bir Android Dev Blog girişi, özellikle bu girişle onaylanır - 8. paragrafa bakın.


1
Bu benim özel sorunum için en yararlı cevap . Çok teşekkür ederim!!!
Bill The Ape

Başarılı bir şekilde kullanabileceğim budur, user408841 tarafından son derece yükseltilmiş cevap değil.
rics

29

Projeye gidin ve sonra "Otomatik Olarak Oluştur" un işaretini kaldırın. Ardından projeyi dışa aktarmayı deneyin ve hata gitti.


27

Bu Android.jar, belki de Eclipse'deki yanlışlıkla hızlı bir düzeltme yoluyla derleme yolunuza dosya eklediyseniz da oluşabilir . Proje -> yapı yolu -> yapı yolunu yapılandır -> android.jar öğesini sağ tıklatarak kaldırın.


25

Bu hata her ortaya çıktığında projeyi temizlemek benim için işe yaradı.


Eclipse + yeniden başlatılıyor + projenin temizlenmesi + manuel derleme benim için çalıştı.
dodgy_coder

Temizlik benim için çalıştı .... bu yüzden gerçek telefonlarda çalışıyor iyi bir hata ayıklama yapı varsa ve sonra ihracat serbest bırakmak ve bu hatayı görmek için gidin ... önce tüm projeleri temiz deneyin.
lepert

16

Dört saat boyunca tüm çözümleri test ettikten sonra bulduğum kendi ve tek çözümüm, burada sağlanan birçok çözümün bir kombinasyonudur:

  • Delete Eclipse projesi
  • İçindeki dosyaları sil \bin\genProje klasöründeki ve klasöründeki
  • İçindeki kitaplıklara referansları kaldırın .classpath kök proje klasöründeki dosyaya
  • Eclipse komut satırıyla yeniden başlatın: eclipse -clean
  • Import proje
  • Proje üzerinde sağ tıklayın - seç Properties> Java Build Path> Librariesve daha başka her şeyi kaldırınAndroid XX.Y
  • Son olarak, cleanprojelendirin, otomatik Bina veyaBuild o
  • Başlat ve şimdi çalışıyor! En azından benim için...

Bir seferde her adımı ve birçok kombinasyonu denedim, ancak tüm adımları tek seferde tamamladım! Umarım bir daha bununla yüzleşmeyeceğim ...


Anonim bir kullanıcıdan, bunun feci sonuçlar verdiğine dair bir uyarı vardı. Kendi riskin ile dene!
PaulG

benim için çalışıyor ama yapmadım: "eclipse -clean" ve Kütüphaneler kaldırmadı.
NicoMinsk

binKlasörü silmek benim için yaptı.
boltup_im_coding

14

Sadece bu sorunu olan ve yukarıdaki cevapları deneyen ancak hala hatayı alan diğer insanlar için (benim durumumdu), benim çözümüm projeyi Eclipse'den silmek ve tekrar içe aktarmaktı.

Bu, Android kütüphanesini başvurulan kütüphanelerime tekrar eklenmesini sağladı, bu yüzden şimdi iki Android JAR dosyasına başvurdum, bu yüzden bunlardan birini sildim ve şimdi iyi derliyor.

Çözüm: Projeyi Eclipse IDE'den silin ve tekrar içe aktarın, sonra yukarıdaki çözümleri kontrol edin.


Teşekkürler! Bu beni sıfırdan kurtardı.
herbertD

10

Bugün bu problemle karşılaştım. Temizleme ve yeniden oluşturma sorunu çözmedi. Projeyi silmek ve yeniden içe aktarmak da yardımcı olmadı.

Sonunda .class dosyama kötü eklemeler için geri izledi. Ben bu başka bir sorunu düzeltmek için çalışırken eklenti araçları tarafından eklendi düşünüyorum, "Dalvik biçimine dönüştürme hatası 1 başarısız oldu" derleme kurtulmak kaldı:

<classpathentry kind="lib" path="C:/dev/repository/android-sdk-windows/platforms/android-3/android.jar">
    <attributes>
        <attribute name="javadoc_location" value="file:/C:/dev/repository/android-sdk-windows/docs/reference"/>
    </attributes>
    <accessrules>
        <accessrule kind="nonaccessible" pattern="com/android/internal/**"/>
    </accessrules>


9

Benim için, oluşturma yolumda fazladan bir JAR başvurusu ortaya çıktı. Bunu sildim ve şimdi çalışıyor.


8

Sorunum ADT sürüm 12.0 ve ProGuard entegrasyonundan kaynaklandı. Bu hata iyi belgelenmiştir ve çözüm belgelerindedir

Çözüm burada

ProGuard komut satırı


Teşekkürler Croc, ben hata çok iyi belgelenmiş olduğunu sanmıyorum - bir çözüm için bir saat aradıktan sonra bulamadım.
Kevin

Muhtemelen yazıyorsunuz - sorun, tek bir hata mesajının çok fazla nedeni olması. Google'ın, kullanıcıların sorunu özetlemesine yardımcı olacak başka iletiler de olmalıdır. Karşılaştığımda sorunu
çözmemin

Bağlı hata tartışma sayfasındaki yorum 11 sorunu burada çözdü: derleme çıktısını Verbose olarak ayarlayın (Pencere> Tercihler> Android> Derleme'den) ve derleyicinin kullandığı ancak orada olmaması gereken JAR veya sınıfları arayın. Onları kaldır. Tekrar sorunsuz bir şekilde derleme deneyimi yaşayın.
Giulio Piancastelli

8

Projemde Sherlock ActionBar kütüphanesini kullanırken bu sorunu çözdüm. Aşağıdaki adımı uygulayabilirsiniz, bu benim için iş.

  1. Projenize sağ tıklayın, özellikleri seçin.
  2. Bir iletişim kutusu görünecektir, soldaki menüden 'Java oluşturma yolu'nu seçin.
  3. Sağ paneldeki 'Android bağımlılıkları' ve 'Android özel kütüphanelerini' kaldırın, ardından Tamam'ı tıklayın
  4. Projenizi temizleyin (Proje -> Temizle menüsünü seçin)
  5. Projenize sağ tıklayın, Android Araçları -> Proje özelliklerini düzelt'i seçin
  6. Projeyi bir kez daha temizleyin.
  7. Bilgisayarı yeniden başlatın
  8. Açık Tutulma ve Dışa Aktarma apk

Umarım bu sana yardımcı olur.


Hata mesajları daha fazla belirtilmelidir. Zamanımı kurtarıyorsun. Teşekkürler.
teapeng

7

Benim durumumda sorun aslında OpenFeint API projesinde. OpenFeint'i kütüphane projesi olarak ekledim:

kütüphane projesi]! [1]! [Resim açıklamasını buraya girin.

Ayrıca derleme yoluna eklenir, ADT araçları 16 bu senaryoda hata verir.

Projenize sağ tıklayın ve inşa yoluna tıklayın, inşa yolunu yapılandırın ve ardından görüntüyü görün ve projenizi buradan kaldırın ve her şey tamamlandı :)

Resim açıklamasını buraya girin


7

Başka bir şey buldum. Android,/libs dizini JAR dosyaları için . Her zaman JAR dosyalarımda bir hata yaptığımda "Dalvik formatına dönüştürme hatası 1 ile başarısız oldu" hatasını defalarca gördüm.

Şimdi Roboguice'i yeni JAR dosyasını /libs dizine ve sınıf yolunu . Bu Dalvik hatasına neden oldu.

Roboguice JAR dosyalarından birini /libsklasörden kaldırdığımda hata kayboldu. Görünüşe göre Android /libs, Java oluşturma yolunda belirttiğiniz dosyalardan bağımsız olarak tüm JAR dosyalarını alır . Tam olarak hatırlamıyorum, ancak Android'in /libsvarsayılan olarak Android 4.0 (Ice Cream Sandwich, ICS) ile başlayarak kullanmaya başladığını düşünüyorum .


7

Proguard'ı en son sürüme güncellemek benim için çözdü.

  • Koruma yolum C:\Program Files (x86)\Android\android-sdk\tools\proguard\
  • Yeni sürümü buradan indirdim
  • ve hem bin hem de lib klasörlerinin yerini aldı

TANRIYA ŞÜKÜR!


7

Genel olarak, bu sorun, oluşturma yolunda gereksiz JAR dosyaları olduğunda ortaya çıkar.

IntelliJ IDEA üzerinde çalışırken bu sorunla karşılaştım . Benim için oldu çünkü çalışma zamanında derlenen JUnit ve Mockito kütüphanelerini ekledim . Bunun modül özelliklerinde "test" olarak ayarlanması gerekiyordu.


"Genel olarak, bu sorun, inşaat yolunda gereksiz kavanozlar olduğunda ortaya çıkıyor." Gereksiz jar dosyalarını sildikten sonra hata gitti. :)
surendran

6

Daha önce önerilen çözümlerin hiçbiri benim için işe yaramadı. Benim durumumda, bir kütüphane kaynak kodu klasörüne başvurmaktan kütüphane JAR dosyasını kullanmaya geçiş yaptığımda sorun oluştu. Başlangıçta, Android uygulama projesi Özellikler \ Android sayfası \ Kütüphane bölümünde listelenen bir Android kütüphane projesi vardı ve kütüphane, proje gezgini ağacında da kütüphane kaynak dizinine bir bağlantı olarak karşılaştırıldı.

İlk olarak, dizin bağlantısını proje ağacından yeni sildim ve JAR kütüphanesini derleme yoluna ekledim, ancak bu istisnaya neden oldu.

Doğru yordam şöyleydi (oluşturma yolunu değiştirdikten ve kitaplık kaynağına başvuruyu geri koyduktan sonra):

  • başvuruyu uygulama projesi Özellikler \ Android sayfasından kaldırarak kütüphane kaynak dizini bağlantısını düzgün bir şekilde kaldırın

  • JAR kütüphanesini uygulama projesi oluşturma yoluna her zamanki gibi ekleme.


6

Listelenen çözümlerin hiçbiri benim için işe yaramadı.

Sorun yaşadığım yer:

JSoup harici JAR dosyasını projemin yoluna önce "libs" adlı bir kaynak klasörüne koyarak ve sonra sağ tıklayarak Oluşturma Yolu'nu ekledim >> oluşturma yoluna ekleyerek ekledim. Bu Dalvik dönüşüm hatasını attı. O JAR dosyasındaki bir sınıfı "zaten eklediğimi" söyledi. Projenin dizinine baktım ve "zaten dahil" olduğu yerin aslında bindizin olduğunu gördüm . JAR dosyasını dizinden sildim ve binEclipse'deki projeyi yeniledim ve hata gitti!


5

Yukarıdaki tüm çözümler benim için işe yaramadı. Herhangi bir önceden derlenmiş .jar kullanmıyorum. LVL ve Dalvik hatalarını tüm pazar lisans kütüphanesiyle ilgili olarak kullanıyorum.

Sorun, ana projeyi silerek ve yeniden ithal ederek (mevcut kaynaklardan yeni bir proje oluşturarak) çözüldü.


5

Aynı sorunu yaşadım ve bu çözümlerin hiçbiri işe yaramadı. Son olarak, konsolda hatanın yinelenen sınıftan kaynaklandığını gördüm (biri mevcut projede, biri eklenen kavanoz dosyasında):

java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1

Bu nedenle, projenizde yinelenen sınıflarla kavanoz ekleyip eklemediğinizi kontrol edin. Evetse, bunlardan birini kaldırmayı deneyin.

Benim için çalıştı.



5

Genellikle benim için, projeyi temizlemek bu sorunu DÜZELTMEZ.

Ancak Eclipse'de projeyi kapatmak ve daha sonra yeniden açmak, bu durumlarda düzeltiyor gibi görünüyor ...


1
Aynı benim için, Eclipse'i kapatmak ve tekrar başlatmak genellikle onu çözer. Sonra deniyorum, ama ikinci bir ihracat yapamıyorum, yeniden başlatmalıyım.
Ted

5

Bu problemle karşılaştım ama benim çözümüm iki yönlü oldu. 1.) Proje -> özellikler -> Android altında bir Android hedef sürümü eklemek zorunda kaldım . 2.) Google'ın üçüncü taraf eklentilerinin tümüne sahip değildim. Altında AVD SDK yöneticisinde tıklayın mevcut paketleri -> üçüncü taraf eklentiler -> Google Inc . Tüm SDK'ları indirdim ve sorunumu çözdüm.


Benim çözümüm @THE_DOM'un çözümü ile hemen hemen aynıydı. Projeyi sağ tıklatın, Android Araçları'nı ve ardından Uyumluluk Kitaplığı Ekle'yi seçin. Bu, bu "üçüncü taraf eklentilerini" yoksa (THE_DOM'un çözümü) indirir, ancak bunları projenize ekler. Bu çözümün sadece bir plasebo olup olmadığı henüz görülmedi. :)
Chris

5

Android 1.6 kullanıyorum ve bir harici JAR dosyam vardı. Benim için işe yarayan , tüm kütüphaneleri kaldırmak, projeye sağ tıklamak ve Android Araçları -> * Proje Özelliklerini Düzelt (Android 1.6'yı ekleyen) ve ardından harici JAR dosyasını geri eklemekti.


5

Eclipse'deki Android-Maven-eklentisi, görünüşe göre birkaç projeden (Android kütüphane projesi dahil) iki kez referans alınan geçişli referansları ve referansları tanımıyor ve bunları bir kereden fazla dahil ediyor. Maven'in tüm bunlarla ilgilenmesi gerekmesine rağmen, her şeyi sadece bir kez dahil etmek için hocus-pocus kullanmak zorunda kaldım.

Örneğin, globalmentor-google ve globalmentor-android (ikincisi Android kütüphanesi olan) tarafından kullanılan bir çekirdek kütüphane globalmentor çekirdeğine sahiptim. Globalmentor-android'de pom.xmlbağımlılığı "sağlanan" olarak işaretlemenin yanı sıra geçişli olarak dahil edildiği diğer kütüphanelerden hariç tutulmak zorunda kaldım:

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-core</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!-- android-maven-plugin can't seem to automatically keep this from being
             included twice; it must therefore be included manually (either explicitly
             or transitively) in dependent projects -->
        <scope>provided</scope>
    </dependency>

Daha sonra son başvuruda pom.xml, sadece bir dahil etme yoluna izin vermek için doğru hileyi kullanmak zorunda kaldım - ve aynı zamanda açıkça kütüphane dahil değil :

    <!-- android-maven-plugin can't seem to automatically keep this from being
        included twice -->
    <!-- <dependency> -->
    <!-- <groupId>com.globalmentor</groupId> -->
    <!-- <artifactId>globalmentor-core</artifactId> -->
    <!-- <version>1.0-SNAPSHOT</version> -->
    <!-- </dependency> -->

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-google</artifactId>
        <version>1.0-SNAPSHOT</version>
        <exclusions>
            <!-- android-maven-plugin can't seem to automatically keep this from
                being included twice -->
            <exclusion>
                <groupId>com.globalmentor</groupId>
                <artifactId>globalmentor-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.globalmentor</groupId>
        <artifactId>globalmentor-android</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

Benim için garip bir şey <extractDuplicates>true</extractDuplicates>, android-maven-eklentisi için sorunu çözdüm mvn installama mvn deploytarif edilen hatayı aldım için değil ... gerçekten garip
Karussell

5

Benim durumumda

proje-> özellikler-> java oluşturma yolu -> sırayla ve dışa aktarma sekmesinde -> android-support-v4.jar öğesinin işaretini kaldırın


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.