Ho provato a installare la mia app in Android L Anteprima Intel Atom Virtual Device, non è riuscita con errore:
INSTALL_FAILED_NO_MATCHING_ABIS
Cosa significa?
Ho provato a installare la mia app in Android L Anteprima Intel Atom Virtual Device, non è riuscita con errore:
INSTALL_FAILED_NO_MATCHING_ABIS
Cosa significa?
Risposte:
INSTALL_FAILED_NO_MATCHING_ABIS
è quando stai cercando di installare un'app che ha librerie native e non ha una libreria nativa per la tua architettura cpu. Ad esempio, se hai compilato un'app per armv7 e stai provando a installarla su un emulatore che utilizza l' architettura Intel invece non funzionerà.
INSTALL_FAILED_NO_MATCHING_ABIS è quando stai cercando di installare un'app che ha librerie native e non ha una libreria nativa per la tua architettura cpu. Ad esempio, se hai compilato un'app per armv7 e stai provando a installarla su un emulatore che utilizza l'architettura Intel invece non funzionerà.
Uso di Xamarin su Visual Studio 2015. Risolvi questo problema:
In "Architetture supportate", verifica quanto segue:
Salva
Modifica: è stato segnalato che questa soluzione funziona anche su Visual Studio 2017 .
Modifica 2: è stato segnalato che questa soluzione funziona anche su Visual Studio 2017 per Mac .
Sto postando una risposta da un'altra discussione perché è ciò che ha funzionato bene per me, il trucco è aggiungere il supporto per entrambe le architetture:
Pubblicando questo perché non sono riuscito a trovare una risposta diretta e ho dovuto guardare un paio di post diversi per ottenere ciò che volevo fare ...
Sono stato in grado di utilizzare l'emulatore x86 Accelerated (HAXM) semplicemente aggiungendo questo allo script build.gradle del mio modulo all'interno del blocco android {}:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Esegui (build) ... Ora ci sarà un (yourapp) -x86-debug.apk nella cartella di output. Sono sicuro che c'è un modo per automatizzare l'installazione su Run, ma ho appena avviato il mio emulatore HAXM preferito e utilizzo la riga di comando:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
file nell'output del mio progetto.
Se usi Genymotion devi installare ARM Translation e GApps
Questo è davvero uno strano errore che può essere causato dal multidex della tua app. Per aggirare il problema, usa il seguente blocco nel file build.gradle della tua app :
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
So che c'erano molte risposte qui, ma la versione TL; DR è questa (se stai usando Xamarin Studio):
Options
Android Build
Advanced
schedax86
/ armeabi-v7a
/armeabi
)Su Android 8:
apache.commons.io:2.4
dà INSTALL_FAILED_NO_MATCHING_ABIS, prova a cambiarlo in 2.5 o 2.6 e funzionerà o lo commenterà.
Il commento di @ enl8enmentnow dovrebbe essere una risposta per risolvere il problema usando genymotion:
Se hai questo problema su Genymotion anche quando usi il traduttore ARM, è perché stai creando un dispositivo virtuale x86 come Google Nexus 10. Scegli invece un dispositivo virtuale ARM, come uno dei tablet personalizzati.
questo ha funzionato per me ... Android> Gradle Scripts> build.gradle (Modulo: app) aggiungi all'interno di android *
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
ho avuto questo problema usando la libreria bitcoinJ (org.bitcoinj: bitcoinj-core: 0.14.7) aggiunta a build.gradle (nell'app del modulo) opzioni di packaging all'interno dell'ambito Android. mi ha aiutato.
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Per genymotion su Mac, ho riscontrato l'errore INSTALL_FAILED_NO_MATCHING_ABIS durante l'installazione del mio apk.
Nel mio progetto non c'era "APP_ABI" ma l'ho aggiunto di conseguenza e ha creato solo un apk per entrambe le architetture ma ha funzionato. https://stackoverflow.com/a/35565901/3241111
Nell'edizione 2017 di Visual Studio Community, a volte la selezione di ABI supportate da Opzioni Android non funzionerà.
In tal caso, verificare che .csproj abbia la seguente riga e nessuna riga duplicata nelle stesse configurazioni di build.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Per modificare,
Fondamentalmente se hai provato tutto quanto sopra e hai ancora lo stesso errore "Perché sto affrontando questo problema anche prima" quindi controlla quale .jar o .aar o modulo che hai aggiunto potrebbe essere l'unica libreria che utilizza ndk e che non supporta 8.0 + .
Quindi, per favore, controlla la libreria che stai usando e cercala se ne hai avutamente bisogno.
Ho riscontrato questo problema quando mi sono trasferito da Android 7 (Nougat) ad Android 8 (Oreo).
Ho provato diversi modi sopra elencati e con mia sfortuna niente ha funzionato.
Quindi ho cambiato il file .apk in .zip file estratto e ho trovato la cartella lib con cui era presente questo file /x86_64/darwin/libscrypt.dylib, quindi per rimuovere questo ho aggiunto un codice nel mio modulo build.gradle sotto la sezione Android (cioè )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Problema di acclamazioni risolto
In generale, per scoprire quale dipendenza della libreria ha un ABI incompatibile,
Puoi provare ad aggiornare la versione / rimuovere / sostituire queste librerie per risolvere INSTALL_FAILED_NO_MATCHING_ABIS quando installa il problema apk
Questo mi è successo. Ho controllato SDK Manager e mi ha detto che quello che stavo usando aveva un aggiornamento. L'ho aggiornato e il problema è andato via.
Abbastanza tardi, ma mi sono appena imbattuto in questo. Questo è per Xamarin.Android
. Assicurati di non provare a eseguire il debug in modalità di rilascio. Ottengo lo stesso errore esatto se in modalità di rilascio e tentando di eseguire il debug. Il semplice passaggio dalla versione al debug ha permesso al mio di installarsi correttamente.
Nel mio caso, dovevo scaricare la versione x86 dell'applicazione.