Android 2.2 kullanarak bir Android uygulaması geliştiriyorum, uygulamamın APK boyutu 22.5 MB ve Samsung tablet için yeni bir yapı oluşturmak istiyorum. Aşağıdaki hatayı aldım:
INSTALL_FAILED_DEXOPT
Bu tür bir hatayı nasıl çözebilirim?
Android 2.2 kullanarak bir Android uygulaması geliştiriyorum, uygulamamın APK boyutu 22.5 MB ve Samsung tablet için yeni bir yapı oluşturmak istiyorum. Aşağıdaki hatayı aldım:
INSTALL_FAILED_DEXOPT
Bu tür bir hatayı nasıl çözebilirim?
Yanıtlar:
Öykünücüyü 'den yeniden başlatmak ve Android SDK and AVD Manager
seçeneği Wipe User Data
belirlemek benim için bu sorunu çözdü.
Seçeneği aşağıdaki resimde vurgulanan şekilde bulabilirsiniz:
adb kill-server
o zaman adb start-server
sorununuzu çözmelisiniz. Eski uygulama olabilir, ardından önce kaldırın.
Bu benim için disk alanı ile ilgili görünüyordu. Yeni haddelenmiş 5.1 öykünücüsü "düşük disk alanı" hatasıyla önyükleme yapıyor ve öykünücü özelliklerine bakıldığında, dahili depolama için ayrılan varsayılan alan 800 MB'dir ve bu düşük görünür.
Bu nedenle çözüm bunu arttırmaktı (4GB'a gittim). Garip bir şekilde emülatör hala aynı disk alanı uyarısı ile önyükleme yapıyor, ancak fabrika ayarlarına sıfırlama (Ayarlar -> Emülatör içindeki Yedekleme ve Geri Yükleme) tamamen benim için çözdü.
Varsayılan ayarlarla kutudan çıkmaması biraz tuhaf.
Yüklediğiniz uygulamanın eski sürümünde, bağımlı kitaplıklar / kavanozlar değiştirildi. Uygulamamın yeniden başvuru yaptığı diğer jar dosyalarını güncellerken bu sorunla karşılaştım.
Eski sürümünüzü kaldırmanız gerekecek ve daha fazla sorununuz olmayacak ...
Ayarlar -> Uygulamalar -> Uygulamaları Yönet -> [Uygulamanızı Bulun ve Kaldırın]
INSTALL_FAILED_DEXOPT hataları çıkmamalıdır. Sevmek
[2011-06-14 01:23:40 - ProtectYourself] Installing ProtectYourself.apk...
[2011-06-14 01:24:26 - ProtectYourself] Installation error: INSTALL_FAILED_DEXOPT
[2011-06-14 01:24:26 - ProtectYourself] Please check logcat output for more details.
[2011-06-14 01:24:26 - ProtectYourself] Launch canceled!
Vay canına.
Android Studio kullanıyorsanız projenizi temizlemeyi deneyin:
Yapım> Projeyi Temizle
Bu hata mesajının birçok farklı nedeni olabilir gibi görünüyor. Karşılaştığım durum gerçek bir cihazdaydı (bu yüzden emülatör taban çözümleri geçerli değildi).
Temel olarak, bu olduğunda, Logcat filtrenizi Ayrıntılı veya Uyar olarak ayarlayın neden hakkında daha fazla bilgi almanıza yardımcı olacak .
Benim durumumda, üzerinde çalıştığım projeye (mevcut büyük bir kod temeli) JUnit'in birden çok veya çakışan sürümleri dahil ediliyordu. Dağıtmaya çalıştığım Android uygulamasının bağımlılık olarak birkaç kütüphane projesi vardı ve yanlışlıkla birden fazla JUnit jar dosyası içerecek şekilde ayarladım.
Bunu bir dizi Logcat mesajına dayanarak keşfettim. UYARI satırının nedeni verdiğini unutmayın:
DEBUG/dalvikvm(4808): DexOpt: 'Ljunit/framework/TestSuite$1;' has an earlier definition; blocking out
11-06 14:30:10.973: WARN/dalvikvm(4808): Invalid file flags in class Ljunit/runner/Sorter$Swapper;: 0209
11-06 14:30:10.973: null/libc(4808): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 4808 (dexopt)
Android Studio 3.4.1 ile daha eski (5.0) bir emülatör kullanarak buna koştum. Bu prosedür (Mac'te) sorunu çözdü:
Emülatörün RAM boyutunu ve dahili depolama kapasitesini değiştirdim Şimdi Tutulma AVD yöneticisinde IT IS Working ... çalışıyor
cevabımı dene https://stackoverflow.com/a/34918549/3737254
android studio 2.0 kullanıyorsanız, anında çalışmayı devre dışı bırakın.
FYI, anında çalıştırma android studio 2.0'ın yeni özelliğidir (hiç kullanmadım>. <)
nasıl devre dışı bırakılır: tercihler -> derleme, yürütme ve dağıtım -> anında çalıştırma -> devre dışı bırakma, ardından sihir gibi çalışır
Zevk almak!
Sorunu çözmek için Anında Çalıştırmayı devre dışı bırakmam gerekiyordu. OS X'te Anında Çalıştırmayı devre dışı bırakmak için Android Studio > Tercihler > Oluştur, Yürütme, Dağıtım > Anında Çalıştır'a gidin ve onay işaretini kaldırın Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
.
dexopt error. Application failed to install
. Bunu bulmadan önce bunları denedim: adb kill-server
adb start-server
Android Studio'yu yeniden başlatma ve Cihazımı fabrika ayarlarına sıfırlama.
Bugün aynı sorunu yeni bir sanal cihazda Android Studio ile yaşadım. x86_64
Görüntüyü indirmiştim , eşdeğeri ile VD'yi yeniden oluşturdumx86
görüntü .
INSTALL_FAILED_NO_MATCHING_ABIS
Bu durumda bir almayı bekledim ama bir şekilde sıkıştımINSTALL_FAILED_DEXOPT
x86
. Görüntüyü indirdikten ve emülatörü değiştirdikten x86_64
sonra hata giderildi. API 21 sistem görüntüsünü kullandım.
x86_64
Görüntüyü bir yerine kullanmaya çalışmadan önce bu iş parçasındaki her şeyi denedim x86
. Ayrıca bir API 21 AVD (Nexus 5) kullanıyordum.
Android Studio ile çalışıyorum ve aynı hatayla karşılaştım.
Ana Modül'ün oluşturma klasörünü silmek yardımcı oldu. Her şeyi sildikten sonra normale dönün.
INSTALL_FAIL_DEXOPT genellikle classes.dex için verilen sınırla ilgilidir. ICS öncesi dexopt 5 MB üzerindeki herhangi bir şeyde başarısız olacaktır. Android'in son sürümlerinde 8 veya 16 MB arabellek kullanılıyor.
APK'nızda classes.dex'in boyutunu kontrol edin. Dex'in 65536 yöntem / alan sınırına sahip olması nedeniyle yöntem sayınızın ne olduğunu görmek de iyi olur.
Referanslar:
Ben build ( ) jumboMode bayrağı etkinleştirdikten sonra bu sorunla karşılaştı dex.force.jumbo=true
. Yeni Android cihazlarda her şey iyi çalıştı, ancak Gingerbread'e kurulum başarısız oldu.
Uygulamanız can sıkıcı 65k kısıtlaması nedeniyle jumbo modu gerektiriyorsa, kullanılmayan bazı kodları / dizeleri kesmeyi ve jumbo modunu tekrar false olarak ayarlamayı deneyin.
classes.dex
finale kalmaz .apk
. gradlew --offline clean && gradlew --offline assembleDebug
Her zaman benim için sabit şeyler çalıştırıyorum . Bu noktadan sonra uygulamayı tekrar Android Studio'dan başlatmaya başlayabilirsiniz.
EDIT: Yukarıda söylediğimden önce Görev Yöneticisi'ne gidin ve hepsini cmd.exe
ve conhost.exe
süreçleri (ya da sadece aapt
sıkışmış olanı) öldürün . Aksi takdirde aapt
, rezil hatayla komut satırından başlatıldığında bundan sonra çökecekti -1073741819
.
build.gradle
dosyanıza bakın. Buildscript bağımlılıkları arasında olmalıdır classpath 'com.android.tools.build:gradle:1.0.0-rc4'
.
cihazınızdaki depolama alanını doğrulayın
Uygulamayı kaldırdım ve yine de INSTALL_FAILED_DEXOPT hatasını aldım. Android Studio / gradle ile çalışıyorsanız: gradle clean benim için hile yaptı, Cheers.
2.3 cihaza (4.0.3 sürümünde) yüklemeye çalışırken bu sorunu alıyordum. En O bakıldığında zaten android örn HttpClient ve XML ayrıştırıcıları vb şeyler için vardı vardı birden kavanozları kullanıyordum bir lib projesi nedeniyle olmanın sona erdi logcat
o önceden olma nedeniyle kendilerine sınıfları atlayarak edildi söylüyordu olarak bu bulmak götürdü mevcut. Orada güzel yararsız orijinal hata!
Genel bir çözüm yoktur, bulabilmek için Logcat'inizde bildirilen hatayı bulmanız gerekir. Bazen, örneğin belirtilen Hedef API'de bulunmayan bir sınıfın kullanımı nedeniyle 'dexed edilemeyen' bir sınıftır. Veya kodunuzda referans yaptığınız bir sınıf olabilir, ancak içinde bulunduğu kütüphane paketlenmemiştir.
Benim durumumda, bu kotlin eklentisinde bir hata, sürüm 1.1.51
https://youtrack.jetbrains.com/issue/KT-20034
Bu hata eski cihazlarda (API 16) ortaya çıktı.
@Parcelize ek açıklamalarını kaldırarak ve bunları bu kod oluşturucu ile değiştirerek düzeltildi: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin
targetSdkVersion 22 // 17 ==========================> bu cihazı cihazlarda Android işletim sistemi sürümüne eşit veya daha az ayarlamak yardımcı olabilir
defaultConfig {
applicationId "software.nhut.personalutilitiesforlife"
minSdkVersion 16
targetSdkVersion 22//17==========================> set this number less then or equal to the version of Android OS on devices might help
versionCode 5
versionName "1.26"
// Enabling multidex support.
multiDexEnabled true
}
Benim yöntem adları (her şey, kopya / bir powerpoint dosyasından yapıştırma nedeniyle) Dalvik hoşlanmadığı bazı Unicode karakterler olduğunda bu sorun vardı. APK'yı yüklemeye çalışırken Logcat çıktısına bakarak bunu görebilirsiniz.
Bu gerçek bir cihazdaydı.
SDK 21 için android sürüm 4 desteğimi değiştirmiştim ve bu hatayla karşılaştım. Bu yüzden eski sürümün (21'den önce) destek sürümüne geri döndüm ve işe yaradı. Hata sadece android 2.3'te meydana geliyordu
Yeni derleme araçlarını 24.0.1 güncellemeye çalışırken bu sorunla karşılaştım. İnternet bağlantısı kesildi ve araçlar başarıyla indirilmedi, bundan sonra bu hatayı aldım ve çözmeye çalışmak için çok zaman harcadım. Ama inşa araçlarını başarıyla güncellediğimde - problem çözüldü. İyi şanslar.