APK'yi yüklerken INSTALL_FAILED_NO_MATCHING_ABIS


Yanıtlar:


633

INSTALL_FAILED_NO_MATCHING_ABISyerel 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.


1
@DanielOchoa Çünkü bir önizleme sürümü için iki görüntü korumak alışkanlık. L resmen başlatıldığında bir Intel x86 görüntüsü de olacağından eminim.
Hiemanshu Sharma

1
Bu sorunun üstesinden nasıl gelinir. Genymotion Emulater kullanıyorum ve gapps yükleyin ve Genymotion-ARM-Translation_v1.1 hala m bu sorunu alıyorum.
Prashant Maheshwari Andro

3
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. Bunun yerine Özel Tabletlerden biri gibi bir ARM sanal cihazı seçin.
enl8enmentnow

1
Bunun neden 5.1.1 çalıştıran bir Nexus 9 üzerinde çalışmadığına dair herhangi bir fikir. 4.4.2 çalıştıran bir Sony Xperia Z2 tablette sorunsuz çalışır. Derlenmiş Sdk 21, min 17 abd hedef 22.
Bear

3
Windows makinemde bir Nexus 5x için Android Studio emülatörünü kullanırken bu sorunu yaşadım. Hız nedenlerinden dolayı [10 kat daha hızlı] varsayılan olarak telefonu Intel x86 mimarisiyle çalışıyormuş gibi simüle ediyor [Nexus 5x'in Snapdragon 808'i aslında ARM tabanlı: tomshardware.com/reviews/lg-g4,4353-2.html ] . AVD yöneticisine girme, bana hata veren simüle edilmiş cihazı seçme ve bir ARM (armeabi-v7a) mimarisi kurduğum Düzenle düğmesine tıklayarak hatayı düzelttim. Bu değişiklik artı emülatör yeniden başlatıldıktan sonra kurulum
Antonino

150

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:

  1. Xamarin .sln dosyanızı açın
  2. Android projenizi sağ tıklayın
  3. Tıklama özellikleri
  4. Android Seçenekleri'ni tıklayın
  5. 'Gelişmiş' sekmesini tıklayın
  6. "Desteklenen mimariler" altında aşağıdakileri işaretleyin:

    1. armeabi-v7a
    2. x86
  7. kayıt etmek

  8. F5 (derleme)

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 .


6
Bu çözüm bir Xamarin.Android projesi için Visual Studio 2017'de de çalıştı.
corentinaltepe

1
Bu, bir Android WebView App projesi kullanırken de benim için çalıştı
JRodd

4
Xamarin'de, her yeni günde, başvurumu çalıştırmamı engelleyen yeni ve beklenmedik bir engel var (dün çalıştı). Csproj dosyam dropbox'ta olduğundan, sürüm geçmişini kontrol edebilirim ve bu özellik dün dosyada değildi, tamamen eksikti. Bugün, uygulamayı çalıştırmak için x86 seçeneğini eklemek zorunda kaldım. Neden xamarin veya android aniden farklı varsayılan değerleri kullanıyor? Bu çok sinir bozucu! Her neyse, senin gibi insanlar sayesinde, üstesinden gelebilir ve işe devam edebilirim. Çok teşekkürler ve sizin için +1!
TMan

2
Keşke birden fazla oy verebilsem ... Mac için VS 2017 üzerinde test edildi ve çalışıyor.
JordiVilaplana

Mac için Visual Studio Community 2019 için: 1. Android projenize sağ tıklayın 2. Seçenekler'e tıklayın 3. Android Build'a tıklayın 4. Advanced
null

87

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

2
Hata [INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim

Benim için çalışmadı ve (yourapp)-x86-debug.apkproje çıktımda dosya bulunamadı .
Eido95

APK'ları bölmek istemiyorum, bu bir seçenek mi? @DrissBounouar
ericn

Evrensel apk'yi kullanabilirsiniz, muhtemelen her iki mimariye de sahiptir.
Driss Bounouar

hala aynı sorunla karşı karşıya
Vikash Parajuli

61

Genymotion kullanıyorsanız ARM Translation ve GApps Kurulumu gerekir


Kullandığınız bazı API'larda hem "ARM Çeviri Yükleyicisi v1.1" hem de "Android sürümünüz için GApps" eklemeniz gerekir.
saneryee

4
GÜNCELLEME 28 Mayıs 2017: Bu kılavuz artık desteklenmiyor ve muhtemelen çalışmıyor. Lütfen artık kullanmayın veya destek istemeyin. -builders adlı geliştiriciden
AndroidCoolestRulest

1
Sen takip edebilirsiniz bu bağlantıyı ARM yaptı yüklemeye
Devansh maurya

37

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]

1
Selam. Bu benim proje başarıyla inşa etti ama yine de bana aynı hatayı verdi. Mac üzerinde çalışıyorum, genymotion. Ayrıca, genel olarak, söylediğin bu ayarlar yalnızca hata ayıklama sürümü için mi yoksa sürüm oluşturma için mi?
myDoggyWritesCode

@ user3241111 Bu, hem hata ayıklama hem de ürün için kullanılabilir. Projenizi temizlemeye çalıştınız mı? Ya da belki de Android Studio'yu geçersiz kıl / yeniden başlat?
IgorGanapolsky

1
@ user3241111 Komut satırı terminal derlemeleri için gradlew kullanıyorsanız, projenizi yine de gradle ile temizleyebilirsiniz.
IgorGanapolsky

1
Bu çözümü denedim, işe yaradı .. Projemde APP_ABI yoktu. Ama buna göre ekledim ve sadece bir apk oluşturuyor ve çalışıyor. stackoverflow.com/a/35565901/3241111
myDoggyWritesCode

1
Ayrıca, etkin kepçe daemon ekledim ve süreci çok hızlandırdı ... Her neyse, desteğiniz için teşekkürler :)
myDoggyWritesCode

11

Burada çok cevap olduğunu biliyorum, ama TL; DR sürümü bu (Xamarin Studio kullanıyorsanız):

  1. Çözüm ağacında Android projesine sağ tıklayın
  2. seçmek Options
  3. Adresine git Android Build
  4. AdvancedSekmeye git
  5. Emülatörünüzde kullandığınız mimarileri kontrol edin (Muhtemelen x86/ armeabi-v7a/ armeabi)
  6. Bir kickass uygulaması yapın :)

11

Bu çözüm benim için çalıştı. Bunu deneyin, uygulamanızın build.gradle dosyasına aşağıdaki satırları ekleyin

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}

11

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.


6
Çok teşekkür ederim, günümü kurtarıyorsun. Neden aldığımı bilmiyorum:
application

7

@ 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.


1
Mac üzerinde çalışıyorum ve muhtemelen x86 sanal cihaz için inşa edilmiştir. Ben de genymotion özel tablet ile denedim, işe yaramadı ve yüklerken aynı hatayı verdi
myDoggyWritesCode 9:16 '

7

Bu benim için çalıştı ... Android> Gradle Scripts> build.gradle (Modül: app) android içine eklemek *

android {
  //   compileSdkVersion 27
     defaultConfig {
        //
     }
     buildTypes {
        //
     }
    // buildToolsVersion '27.0.3'

    splits {
           abi {
                 enable true
                 reset()
                 include 'x86', 'armeabi-v7a'
                 universalApk true
               }
    }
 }

resim açıklamasını buraya girin


6

Visual Studio mac - desteği buradan değiştirebilirsiniz:

resim açıklamasını buraya girin


6

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'
    }
}

Teşekkürler. Bitcoin J Entegrasyonu ile bana yardımcı oldu.
Umer Kiani

Çok teşekkür ederim ben birçok çözüm deniyorum ama bu çözüm benim için çalışıyor Benim sorunum scrypt-1.4.0.jar android Pie sürümü (Nokia 7.1) yüklemek değil Cihaz
Sagar Pithiya

3

Benim durumumda, bir xamarin projesinde, görsel stüdyo hatası özellikleri seçerek kaldırıldı -> Android Seçenekleri ve Paylaşım Çalışma Sürelerini Kullan ve Hızlı Dağıtımı Kullan seçeneklerini işaretleyin, bazı durumlarda bunlardan biri resim açıklamasını buraya girin



2

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,

  1. Android Projenizi kaldırın
  2. Sağ tıklayın ve Projeyi Düzenle ... 'yi seçin.
  3. Derleme yapılandırmasında yukarıdaki satırın yalnızca bir kez bulunduğundan emin olun
  4. Kayıt etmek
  5. Android projenize sağ tıklayın ve Yeniden Yükle

1

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.


1

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ü


1

Genel olarak hangi kütüphane bağımlılığının ABI ile uyumsuz olduğunu bulmak için,

  • Android Studio'da bir APK dosyası oluşturma (menü Oluştur> Paket Paketleri / APK'lar> APK Oluştur) // 01.04.2020 tarihinde gerçek
  • APK dosyasını yeniden adlandırın, "apk" uzantısını "zip" uzantısıyla değiştirin
  • zip dosyasını yeni bir klasöre aç
  • libs klasörüne git
  • uyumsuz ABI'lere sahip hangi * .jar kitaplıklarının olduğunu öğrenin

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


0

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.


0

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.


0

Benim durumumda, uygulamanın x86 sürümünü indirmem gerekiyordu.

  1. Https://www.apkmirror.com/ adresine gidin.
  2. Uygulamayı arayın
  3. Listeden ilkini seçin
  4. Sayfanın en üstüne, [Şirket Adı]> [Uygulama Adı]> [Sürüm Numarası]
  5. Uygulama Adını tıklayın
  6. 'Tüm Varyantlar'ı tıklayın
  7. Liste, indirilecek bir x86 varyantı içermelidir

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.