Saya mencoba menginstal aplikasi saya ke Android L Preview Intel Atom Virtual Device, gagal dengan kesalahan:
INSTALL_FAILED_NO_MATCHING_ABIS
Apa artinya?
Saya mencoba menginstal aplikasi saya ke Android L Preview Intel Atom Virtual Device, gagal dengan kesalahan:
INSTALL_FAILED_NO_MATCHING_ABIS
Apa artinya?
Jawaban:
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.
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:
Di bawah "Arsitektur yang didukung" buat yang berikut diperiksa:
menyimpan
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 .
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
(yourapp)-x86-debug.apk
file di output proyek saya.
Jika Anda menggunakan Genymotion, Anda perlu Menginstal Terjemahan ARM dan GApps
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]
Saya tahu ada banyak jawaban di sini, tetapi versi TL; DR adalah ini (Jika Anda menggunakan Xamarin Studio):
Options
Android Build
Advanced
tabx86
/ armeabi-v7a
/ armeabi
)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.
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.
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'
}
}
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
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,
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.
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
Dalam kasus umum untuk mengetahui ketergantungan perpustakaan mana yang memiliki ABI yang tidak kompatibel,
Anda dapat mencoba memutakhirkan versi / menghapus / mengganti pustaka ini untuk menyelesaikan INSTALL_FAILED_NO_MATCHING_ABIS saat memasang masalah apk
Ini terjadi pada saya. Saya memeriksa Manajer SDK dan memberitahu saya yang saya gunakan memiliki pembaruan. Saya memperbaruinya dan masalahnya hilang.
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.
Dalam kasus saya, saya perlu mengunduh versi aplikasi x86.