Uygulamamı Android L Preview Intel Atom Sanal Aygıtına yüklemeye çalıştım, hata ile başarısız oldu:
INSTALL_FAILED_NO_MATCHING_ABIS
Bunun anlamı ne?
Uygulamamı Android L Preview Intel Atom Sanal Aygıtına yüklemeye çalıştım, hata ile başarısız oldu:
INSTALL_FAILED_NO_MATCHING_ABIS
Bunun anlamı ne?
Yanıtlar:
INSTALL_FAILED_NO_MATCHING_ABIS
yerel kütüphaneleri olan ve cpu mimariniz için yerel bir kütüphanesi olmayan bir uygulamayı yüklemeye çalıştığınız zamandır. Örneğin, armv7 için bir uygulama derlediyseniz ve bunu Intel mimarisini kullanan bir taklitçiye yüklemeye çalışıyorsanız bunun yerine çalışmaz.
INSTALL_FAILED_NO_MATCHING_ABIS, yerel kütüphaneleri olan ve cpu mimariniz için yerel bir kütüphanesi olmayan bir uygulama yüklemeye çalıştığınız zamandır. Örneğin, armv7 için bir uygulama derlediyseniz ve bunu Intel mimarisini kullanan bir taklitçiye yüklemeye çalışıyorsanız bunun yerine çalışmaz.
Visual Studio 2015'te Xamarin kullanma. Bu sorunu şu şekilde düzeltin:
"Desteklenen mimariler" altında aşağıdakileri işaretleyin:
kayıt etmek
Düzenleme: Bu çözümün Visual Studio 2017 üzerinde de çalıştığı bildirildi .
Düzenleme 2: Bu çözümün Mac için Visual Studio 2017 üzerinde de çalıştığı bildirildi .
Başka bir konudan cevap gönderiyorum çünkü benim için iyi olan şey bu, her iki mimariye de destek eklemektir:
Bunu gönderiyorum çünkü doğrudan bir cevap bulamadım ve istediğim şeyi elde etmek için birkaç farklı gönderiye bakmak zorunda kaldım ...
X86 Hızlandırılmış (HAXM) öykünücüsünü, sadece bu modülün build.gradle komut dosyasına android {} bloğuna ekleyerek kullanabildim:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Çalıştır (derle) ... Şimdi çıktı klasörünüzde bir (yourapp) -x86-debug.apk olacak. Run üzerine yüklemeyi otomatikleştirmenin bir yolu olduğundan eminim ama sadece tercih ettiğim HAXM emülatörünü başlatıyorum ve komut satırını kullanıyorum:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
proje çıktımda dosya bulunamadı .
Genymotion kullanıyorsanız ARM Translation ve GApps Kurulumu gerekir
Bu gerçekten de uygulamanızın multidexing'inden kaynaklanabilecek garip bir hatadır. Bu sorunu gidermek için uygulamanızın build.gradle dosyasında aşağıdaki bloğu kullanın :
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
Burada çok cevap olduğunu biliyorum, ama TL; DR sürümü bu (Xamarin Studio kullanıyorsanız):
Options
Android Build
Advanced
Sekmeye gitx86
/ armeabi-v7a
/ armeabi
)Android 8'de:
apache.commons.io:2.4
INSTALL_FAILED_NO_MATCHING_ABIS verir, 2.5 veya 2.6 olarak değiştirmeyi deneyin ve çalışacak veya yorumlayacaktır.
@ Enl8enmentnow yorumu, genymotion kullanarak sorunu çözmek için bir cevap olmalıdır:
ARM çeviricisini kullanırken bile Genymotion'da bu sorunu yaşıyorsanız, bunun nedeni Google Nexus 10 gibi bir x86 sanal cihazı oluşturmanızdır. Özel Tabletlerden biri gibi bir ARM sanal cihazı seçin.
bitcoinJ kitaplığı (org.bitcoinj: bitcoinj-core: 0.14.7) kullanarak bu sorunu yaşadım. Bana yardımcı oldu.
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Mac'teki genymotion için apk yüklerken INSTALL_FAILED_NO_MATCHING_ABIS hatası alıyordum.
Projemde herhangi bir "APP_ABI" yoktu ama buna göre ekledim ve her iki mimari için sadece bir apk oluşturdu ama işe yaradı. https://stackoverflow.com/a/35565901/3241111
Visual studio topluluk sürümü 2017'de, bazen Android Seçenekleri'nden Desteklenen ABI'lerin seçimi işe yaramaz.
Bu durumda, lütfen .csproj'un aşağıdaki satıra sahip olduğunu ve aynı oluşturma yapılandırmalarında yinelenen satır olmadığını doğrulayın.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Düzenlemek için,
Temelde Yukarıdaki her şeyi denediyseniz ve yine de aynı hatayı alıyorsanız "Ben de bu sorunla daha önce karşılaşıyorum" sonra hangi .jar veya .aar veya modül eklediğinizi ndk kullanarak bir kütüphane olabilir ve bir 8.0 desteklemiyor kontrol edin (Oreo) +, aynı şekilde ben .jar dosyalarını ekleyerek Microsoft SignalR soket Kütüphane kullanıyorum ve son olarak ben Oreo yüklü değil sonra app öğrendim sonra şu anda onun git sayfasında hiçbir çözüm yoktur ve ben başka bir gitmek için bu kütüphaneyi kaldırmak .
Bu yüzden lütfen kullandığınız kütüphaneyi kontrol edin ve buna ihtiyacınız varsa arama yapın.
Android 7'den (Nougat) Android 8'e (Oreo) taşındığında bu sorunla karşılaştım.
Yukarıda listelenen çeşitli yollar denedim ve benim kötü şans için hiçbir şey çalıştı.
Bu yüzden .apk dosyasını .zip dosyasına çıkardı ve bu dosyanın bulunduğu lib klasörünü buldum /x86_64/darwin/libscrypt.dylib, bu yüzden bunu kaldırmak için android bölümünün altındaki build.gradle modülünde bir kod ekledim (yani )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Şerefe sorunu çözüldü
Genel olarak hangi kütüphane bağımlılığının ABI ile uyumsuz olduğunu bulmak için,
APK sorununu yüklerken INSTALL_FAILED_NO_MATCHING_ABIS çözümünü çözmek için sürümü yükseltmeyi / kaldırmayı / değiştirmeyi deneyebilirsiniz
Bu bana oldu. SDK Yöneticisini kontrol ettim ve kullandığım kişinin bir güncelleme olduğunu söyledi. Ben güncelledim ve sorun gitti.
Oldukça geç, ama sadece bununla karşılaştı. Bunun için Xamarin.Android
. Yayınlama modunda hata ayıklamaya çalışmadığınızdan emin olun. Sürüm modunda ve hata ayıklamaya çalışırken aynı hatayı alıyorum. Sadece sürümden hata ayıklamaya geçmek benimkinin düzgün bir şekilde kurulmasına izin verdi.
Benim durumumda, uygulamanın x86 sürümünü indirmem gerekiyordu.