INSTALL_FAILED_NO_MATCHING_ABIS saat memasang apk

Jawaban:

633

INSTALL_FAILED_NO_MATCHING_ABISadalah ketika Anda mencoba memasang aplikasi yang memiliki pustaka asli dan tidak memiliki pustaka asli untuk arsitektur cpu Anda. Sebagai contoh jika Anda mengkompilasi aplikasi untuk armv7 dan mencoba untuk menginstalnya pada emulator yang menggunakan arsitektur Intel sebagai gantinya itu tidak akan berfungsi.

Hiemanshu Sharma
sumber
1
@DanielOchoa Ini karena mereka tidak ingin mempertahankan dua gambar untuk rilis pratinjau. Ketika L secara resmi diluncurkan, saya yakin akan ada gambar Intel x86 juga.
Hiemanshu Sharma
1
Bagaimana mengatasi masalah ini. saya menggunakan Genymotion Emulater dan menginstal gapps dan Genymotion-ARM-Translation_v1.1 masih mendapatkan masalah ini.
Prashant Maheshwari Andro
3
Jika Anda memiliki masalah ini pada Genymotion bahkan ketika menggunakan penerjemah ARM itu karena Anda membuat perangkat virtual x86 seperti Google Nexus 10. Sebaliknya, pilih perangkat virtual ARM, seperti salah satu Tablet Kustom.
perbesar8
1
Tahu mengapa ini tidak bekerja pada Nexus 9 yang menjalankan 5.1.1. Ini berfungsi dengan baik pada tablet Sony Xperia Z2 yang menjalankan 4.4.2. Disusun Sdk 21, min 17 abd ditargetkan 22.
Beruang
3
Saya mengalami masalah ini saat menggunakan emulator Android Studio untuk Nexus 5x pada mesin Windows saya. Untuk alasan kecepatan [10x lebih cepat] standarnya adalah mensimulasikan telepon seolah-olah berfungsi dengan arsitektur Intel x86 [Nexus 5x's Snapdragon 808 sebenarnya berdasarkan pada ARM: tomshardware.com/reviews/lg-g4,4353-2.html ] . Saya memperbaiki kesalahan memasuki manajer AVD, memilih perangkat simulasi yang memberi saya kesalahan dan mengklik tombol Edit di mana saya mengatur arsitektur ARM (armeabi-v7a). Setelah perubahan ini plus emulator reboot, instalasi berjalan tanpa masalah
Antonino
150

INSTALL_FAILED_NO_MATCHING_ABIS adalah ketika Anda mencoba memasang aplikasi yang memiliki pustaka asli dan tidak memiliki pustaka asli untuk arsitektur cpu Anda. Sebagai contoh jika Anda mengkompilasi aplikasi untuk armv7 dan mencoba untuk menginstalnya pada emulator yang menggunakan arsitektur Intel sebagai gantinya itu tidak akan berfungsi.

Menggunakan Xamarin di Visual Studio 2015. Perbaiki masalah ini dengan:

  1. Buka xamarin .sln Anda
  2. Klik kanan proyek android Anda
  3. Klik properti
  4. Klik Opsi Android
  5. Klik tab 'Advanced'
  6. Di bawah "Arsitektur yang didukung" buat yang berikut diperiksa:

    1. armeabi-v7a
    2. x86
  7. menyimpan

  8. F5 (membangun)

Sunting: Solusi ini telah dilaporkan bekerja di Visual Studio 2017 juga.

Sunting 2: Solusi ini telah dilaporkan juga berfungsi pada Visual Studio 2017 untuk Mac .

Asher Garland
sumber
6
Solusi itu bekerja pada Visual Studio 2017 juga, untuk proyek Xamarin. Android.
corentinaltepe
1
Ini juga bekerja untuk saya ketika menggunakan proyek Aplikasi WebView Android
JRodd
4
Sepertinya pada Xamarin, pada setiap hari baru ada rintangan baru yang tidak terduga yang mencegah saya menjalankan aplikasi saya (yang berfungsi kemarin). Karena file csproj saya ada di dropbox, saya bisa memeriksa riwayat versi, dan properti ini tidak ada di file kemarin, semuanya hilang sama sekali. Hari ini, saya harus menambahkan opsi x86 untuk menjalankan aplikasi. Kenapa xamarin atau android tiba-tiba menggunakan nilai default yang berbeda? Ini sangat menyebalkan! Bagaimanapun, terima kasih kepada orang-orang seperti Anda, saya dapat mengatasi dan melanjutkan pekerjaan. Terima kasih banyak, dan +1 untuk Anda!
TMan
2
Seandainya saya bisa mengungguli lebih dari sekali ... Diuji dan bekerja pada VS 2017 untuk Mac.
JordiVilaplana
Untuk Visual Studio Community 2019 untuk Mac: 1. Klik kanan pada proyek android Anda 2. Klik Opsi 3. Klik Android Build 4. Advanced
null
87

Saya memposting jawaban dari utas lain karena itu yang bekerja dengan baik bagi saya, triknya adalah menambahkan dukungan untuk kedua arsitektur:

Posting ini karena saya tidak dapat menemukan jawaban langsung dan harus melihat beberapa posting berbeda untuk mendapatkan apa yang saya inginkan dilakukan ...

Saya dapat menggunakan emulator x86 Dipercepat (HAXM) hanya dengan menambahkan ini ke skrip build.gradle Modul saya di dalam blok android {}:

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

Jalankan (bangun) ... Sekarang akan ada (aplikasi Anda) -x86-debug.apk di folder output Anda. Saya yakin ada cara untuk mengotomatisasi penginstalan saat Run tetapi saya baru saja memulai emulator HAXM pilihan saya dan menggunakan baris perintah:

adb install (yourapp)-x86-debug.apk
Driss Bounouar
sumber
2
Gagal [INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim
Tidak berfungsi untuk saya dan tidak dapat menemukan (yourapp)-x86-debug.apkfile di output proyek saya.
Eido95
Saya tidak ingin memecah APK, apakah itu pilihan? @DrissBounouar
ericn
Anda dapat menggunakan apk universal, mungkin memiliki kedua arsitektur.
Driss Bounouar
masih menghadapi masalah yang sama
Vikash Parajuli
61

Jika Anda menggunakan Genymotion, Anda perlu Menginstal Terjemahan ARM dan GApps

R00We
sumber
Di beberapa API yang Anda gunakan, Anda perlu menambahkan "Penginstal Terjemahan ARM v1.1" dan "GApps untuk versi Android Anda".
saneryee
4
UPDATE 28 Mei 2017: Panduan ini tidak lagi didukung dan mungkin tidak berfungsi. Tolong jangan gunakan atau minta dukungan lagi. dari xda-developers
AndroidCoolestRulest
1
Anda dapat mengikuti tautan ini untuk menginstal Terjemahan ARM
Devansh Maurya
37

Ini memang kesalahan aneh yang bisa disebabkan oleh multidexing aplikasi Anda. Untuk menyiasatinya, gunakan blok berikut di file build.gradle aplikasi Anda :

android {
  splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
  }
  ...[rest of your gradle script]
IgorGanapolsky
sumber
1
Hai. Ini membuat proyek saya berhasil dibangun tetapi tetap saja itu memberi saya kesalahan yang sama. Saya sedang mengerjakan mac, genymotion. Secara umum, apakah pengaturan ini yang Anda beri tahu hanya untuk versi debug atau juga untuk rilis build?
myDoggyWritesCode
@ user3241111 Ini bisa digunakan untuk debug dan juga prod. Sudahkah Anda mencoba untuk membersihkan proyek Anda. Atau mungkin membatalkan / me-restart Android Studio?
IgorGanapolsky
1
@ user3241111 Jika Anda menggunakan gradlew untuk pembangunan terminal baris perintah, maka Anda masih dapat membersihkan proyek Anda dengan gradle.
IgorGanapolsky
1
Saya mencoba solusi ini, itu berhasil .. Dalam proyek saya tidak ada APP_ABI. Tapi saya menambahkannya sesuai dan itu membangun hanya satu apk dan itu berfungsi. stackoverflow.com/a/35565901/3241111
myDoggyWritesCode
1
Juga, saya baru saja menambahkan daemon gradle yang diaktifkan dan telah mempercepat prosesnya ... Bagaimanapun, terima kasih atas dukungan Anda :)
myDoggyWritesCode
11

Saya tahu ada banyak jawaban di sini, tetapi versi TL; DR adalah ini (Jika Anda menggunakan Xamarin Studio):

  1. Klik kanan proyek Android di pohon solusi
  2. Pilih Options
  3. Pergi ke Android Build
  4. Buka Advancedtab
  5. Periksa arsitektur yang Anda gunakan dalam emulator Anda (Mungkin x86/ armeabi-v7a/ armeabi)
  6. Buat aplikasi kickass :)
Jonathan Perry
sumber
11

Solusi ini berhasil untuk saya. Coba ini, tambahkan baris berikut di file build.gradle aplikasi Anda

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

Di Android 8:

apache.commons.io:.4

itu memberi INSTALL_FAILED_NO_MATCHING_ABIS, cobalah untuk mengubahnya menjadi 2,5 atau 2,6 dan itu akan bekerja atau berkomentar.

Saba
sumber
6
Terima kasih banyak, Anda menghemat hari saya. Saya tidak tahu mengapa saya dapat: implementasi 'org.apache.directory.studio:org.apache.commons.io:.4'
Pierrick HYMBERT
7

Komentar dari @ enl8enmentnow harus menjadi jawaban untuk memperbaiki masalah menggunakan genymotion:

Jika Anda memiliki masalah ini pada Genymotion bahkan ketika menggunakan penerjemah ARM itu karena Anda membuat perangkat virtual x86 seperti Google Nexus 10. Sebaliknya, pilih perangkat virtual ARM, seperti salah satu Tablet Kustom.

muetzenflo
sumber
1
Saya bekerja di mac dan mungkin itu dibangun untuk perangkat virtual x86. Saya mencoba dengan tablet khusus genymotion juga, itu tidak berhasil, dan memberikan kesalahan yang sama saat menginstal
myDoggyWritesCode
7

ini bekerja untuk saya ... Android> Script Gradle> build.gradle (Module: app) tambahkan di dalam android *

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

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

masukkan deskripsi gambar di sini


sumber
6

Visual Studio mac - Anda dapat mengubah dukungan di sini:

masukkan deskripsi gambar di sini

LeRoy
sumber
6

saya punya masalah ini menggunakan perpustakaan bitcoinJ (org.bitcoinj: bitcoinj-core: 0.14.7) ditambahkan ke build.gradle (dalam aplikasi modul) opsi pengemasan di dalam lingkup android. itu membantu saya.

android {
...
    packagingOptions {
        exclude 'lib/x86_64/darwin/libscrypt.dylib'
        exclude 'lib/x86_64/freebsd/libscrypt.so'
        exclude 'lib/x86_64/linux/libscrypt.so'
    }
}
ediBersh
sumber
Terima kasih. Ini membantu saya dengan Integrasi Bitcoin J.
Umer Kiani
Terima kasih banyak saya mencoba banyak solusi tetapi solusi ini bekerja untuk saya untuk saya Masalah saya adalah untuk scrypt-1.4.0.jar tidak menginstal di Android Pie versi (Nokia 7.1) Perangkat
Sagar Pithiya
3

Dalam kasus saya, dalam proyek xamarin, dalam kesalahan visual studio dihapus dengan memilih properti -> Opsi Android dan periksa Use Share run Times dan Use Fast Deployment, dalam beberapa kasus salah satunya masukkan deskripsi gambar di sini

Saleem Kalro
sumber
2

Untuk genymotion di mac, saya mendapatkan kesalahan INSTALL_FAILED_NO_MATCHING_ABIS saat memasang apk saya.

Dalam proyek saya tidak ada "APP_ABI" tetapi saya menambahkannya sesuai dan itu membangun hanya satu apk untuk kedua arsitektur tetapi berhasil. https://stackoverflow.com/a/35565901/3241111

myDoggyWritesCode
sumber
2

Dalam komunitas visual studio edisi 2017, kadang-kadang pemilihan ABI yang Didukung dari Android Options tidak akan berfungsi.

Jika demikian, harap verifikasi bahwa .csproj memiliki baris berikut dan tidak ada duplikat baris dalam konfigurasi build yang sama.

 <AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>

Untuk mengedit,

  1. Bongkar Proyek Android Anda
  2. Klik kanan dan pilih Edit Proyek ...
  3. Pastikan Anda memiliki baris di atas hanya satu kali dalam konfigurasi build
  4. Menyimpan
  5. Klik kanan pada proyek Android Anda dan Muat Ulang
Kusal Dissanayake
sumber
1

Pada dasarnya jika Anda mencoba Semuanya di atas dan masih Anda memiliki kesalahan yang sama "Karena saya menghadapi masalah ini sebelumnya juga" maka periksa .jar atau .aar atau modul yang Anda tambahkan mungkin perpustakaan yang menggunakan ndk, dan yang tidak mendukung 8.0 (Oreo) +, juga saya menggunakan Perpustakaan socket Microsoft SignalR menambahkan file .jar dan akhirnya saya menemukan aplikasi tidak menginstal di Oreo kemudian setelah itu saya menghapus perpustakaan itu karena saat ini tidak ada solusi pada halaman git dan saya pergi untuk yang lain .

Jadi silakan periksa perpustakaan yang Anda gunakan dan cari jika Anda sangat membutuhkannya.

Sumit Kumar
sumber
1

Saya menghadapi masalah ini ketika pindah dari Android 7 (Nougat) ke Android 8 (Oreo).

Saya telah mencoba beberapa cara yang tercantum di atas dan sial saya tidak ada yang berhasil.

Jadi saya mengubah file .apk menjadi file .zip mengekstraknya dan menemukan folder lib yang dengannya file ini ada /x86_64/darwin/libscrypt.dylib sehingga untuk menghapus ini saya menambahkan kode di modul build.gradle saya di bawah bagian android (yaitu )

packagingOptions {
    exclude 'lib/x86_64/darwin/libscrypt.dylib'
    exclude 'lib/x86_64/freebsd/libscrypt.so'
    exclude 'lib/x86_64/linux/libscrypt.so'
}

Masalah sorakan terpecahkan

Khan.N
sumber
1

Dalam kasus umum untuk mengetahui ketergantungan perpustakaan mana yang memiliki ABI yang tidak kompatibel,

  • buat file APK di Android Studio (menu Bangun> Bangun Bundel / APK) Bangun APK
  • ganti nama file APK, ganti ekstensi "apk" dengan ekstensi "zip"
  • membongkar file zip ke folder baru
  • buka folder libs
  • cari tahu perpustakaan * .jar mana dengan ABI yang tidak kompatibel yang ada

Anda dapat mencoba memutakhirkan versi / menghapus / mengganti pustaka ini untuk menyelesaikan INSTALL_FAILED_NO_MATCHING_ABIS saat memasang masalah apk

Denis Dmitrienko
sumber
0

Ini terjadi pada saya. Saya memeriksa Manajer SDK dan memberitahu saya yang saya gunakan memiliki pembaruan. Saya memperbaruinya dan masalahnya hilang.

Barry Fruitman
sumber
0

Cukup terlambat, tetapi hanya berlari ke ini. Ini untuk Xamarin.Android. Pastikan Anda tidak mencoba melakukan debug dalam mode rilis. Saya mendapatkan kesalahan yang sama persis jika dalam mode rilis dan mencoba untuk debug. Cukup beralih dari rilis ke debug, tambang diizinkan untuk dipasang dengan benar.

Nieminen
sumber
0

Dalam kasus saya, saya perlu mengunduh versi aplikasi x86.

  1. Buka https://www.apkmirror.com/
  2. Cari aplikasi
  3. Pilih yang pertama dalam daftar
  4. Lihat di bagian atas halaman, di mana ada [Nama Perusahaan]> [Nama Aplikasi]> [Nomor Versi]
  5. Klik Nama Aplikasi
  6. Klik 'Semua Varian'
  7. Daftar ini harus berisi varian x86 untuk diunduh
Fidel
sumber
0

Dalam kasus saya pengaturan opsi berikut membantu saya keluar

masukkan deskripsi gambar di sini

Stefan Michev
sumber