Intenté instalar mi aplicación en Android L Preview Intel Atom Virtual Device, falló con un error:
INSTALL_FAILED_NO_MATCHING_ABIS
Qué significa eso?
Intenté instalar mi aplicación en Android L Preview Intel Atom Virtual Device, falló con un error:
INSTALL_FAILED_NO_MATCHING_ABIS
Qué significa eso?
Respuestas:
INSTALL_FAILED_NO_MATCHING_ABIS
es cuando intentas instalar una aplicación que tiene bibliotecas nativas y no tiene una biblioteca nativa para tu arquitectura de CPU. Por ejemplo, si compiló una aplicación para armv7 y está tratando de instalarla en un emulador que utiliza la arquitectura Intel , no funcionará.
INSTALL_FAILED_NO_MATCHING_ABIS es cuando intentas instalar una aplicación que tiene bibliotecas nativas y no tiene una biblioteca nativa para tu arquitectura de CPU. Por ejemplo, si compiló una aplicación para armv7 y está tratando de instalarla en un emulador que utiliza la arquitectura Intel, no funcionará.
Usando Xamarin en Visual Studio 2015. Solucione este problema:
En "Arquitecturas compatibles", haga lo siguiente:
salvar
Editar: también se ha informado que esta solución funciona en Visual Studio 2017 .
Edición 2: también se ha informado que esta solución funciona en Visual Studio 2017 para Mac .
Estoy publicando una respuesta de otro hilo porque es lo que funcionó bien para mí, el truco es agregar soporte para ambas arquitecturas:
Publicando esto porque no pude encontrar una respuesta directa y tuve que mirar un par de publicaciones diferentes para obtener lo que quería hacer ...
Pude usar el emulador acelerado x86 (HAXM) simplemente agregando esto al script build.gradle de mi Módulo dentro del bloque android {}:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Ejecute (compilar) ... Ahora habrá un (yourapp) -x86-debug.apk en su carpeta de salida. Estoy seguro de que hay una manera de automatizar la instalación en Run, pero acabo de iniciar mi emulador HAXM preferido y uso la línea de comandos:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
archivo en la salida de mi proyecto.
Si usa Genymotion, necesita instalar ARM Translation y GApps
De hecho, este es un error extraño que puede ser causado por la multidexificación de su aplicación. Para evitarlo , use el siguiente bloque en el archivo build.gradle de su aplicación :
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
Sé que hubo muchas respuestas aquí, pero la versión TL; DR es esta (si está usando Xamarin Studio):
Options
Android Build
Advanced
pestañax86
/ armeabi-v7a
/ armeabi
)En Android 8:
apache.commons.io:2.4
le da INSTALL_FAILED_NO_MATCHING_ABIS, intente cambiarlo a 2.5 o 2.6 y funcionará o lo comentará.
El comentario de @ enl8enmentnow debería ser una respuesta para solucionar el problema usando genymotion:
Si tiene este problema en Genymotion, incluso cuando utiliza el traductor ARM, es porque está creando un dispositivo virtual x86 como Google Nexus 10. Elija un dispositivo virtual ARM, como una de las tabletas personalizadas.
esto funcionó para mí ... Android> Gradle Scripts> build.gradle (Módulo: aplicación) agregar dentro de Android *
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
Tuve este problema al usar la biblioteca bitcoinJ (org.bitcoinj: bitcoinj-core: 0.14.7) agregada a build.gradle (en la aplicación del módulo) opciones de empaque dentro del alcance de Android. Me ayudó.
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Para genymotion en mac, recibí el error INSTALL_FAILED_NO_MATCHING_ABIS al instalar mi apk.
En mi proyecto no había ninguna "APP_ABI", pero la agregué en consecuencia y construyó solo una apk para ambas arquitecturas, pero funcionó. https://stackoverflow.com/a/35565901/3241111
En la edición 2017 de Visual Studio Community, a veces la selección de ABI compatibles de las Opciones de Android no funcionará.
En ese caso, verifique que .csproj tenga la siguiente línea y no haya líneas duplicadas en las mismas configuraciones de compilación.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Para editar,
Básicamente, si probó todo lo anterior y aún tiene el mismo error "Porque también estoy enfrentando este problema antes", compruebe qué .jar o .aar o módulo que agregó puede ser la biblioteca que usa ndk, y esa no es compatible con 8.0 (Oreo) +, del mismo modo, estoy usando la biblioteca de socket Microsoft SignalR agregando sus archivos .jar y luego descubrí que la aplicación no se instala en Oreo y luego eliminé esa biblioteca porque actualmente no hay solución en su página git y busco otra .
Por lo tanto, compruebe la biblioteca que está utilizando y búsquela si la necesita con impaciencia.
Me enfrenté a este problema cuando me mudé de Android 7 (Nougat) a Android 8 (Oreo).
He intentado varias formas mencionadas anteriormente y para mi mala suerte nada funcionó.
Así que cambié el archivo .apk a .zip, lo extraje y encontré la carpeta lib con la que estaba este archivo /x86_64/darwin/libscrypt.dylib, así que para eliminar esto agregué un código en mi módulo build.gradle debajo de la sección de Android (es decir, )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Problema de salud resuelto
En general, para averiguar qué dependencia de la biblioteca tiene ABI incompatible,
Puede intentar actualizar la versión / eliminar / reemplazar estas bibliotecas para resolver INSTALL_FAILED_NO_MATCHING_ABIS cuando instale el problema apk
Esto me paso a mi. Revisé el SDK Manager y me dijo que el que estaba usando tenía una actualización. Lo actualicé y el problema desapareció.
Muy tarde, pero me encontré con esto. Esto es para Xamarin.Android
. Asegúrese de que no está intentando depurar en modo de lanzamiento. Obtengo exactamente el mismo error si estoy en modo de lanzamiento e intento depurar. Simplemente cambiar de versión a depuración permitió que la mía se instalara correctamente.
En mi caso, necesitaba descargar la versión x86 de la aplicación.