INSTALL_FAILED_NO_MATCHING_ABIS cuando instale apk

Respuestas:

633

INSTALL_FAILED_NO_MATCHING_ABISes 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á.

Hiemanshu Sharma
fuente
1
@DanielOchoa Es porque no van a mantener dos imágenes para una versión preliminar. Cuando se lanza oficialmente L, estoy seguro de que también habrá una imagen Intel x86.
Hiemanshu Sharma
1
Cómo superar este problema. Estoy usando Genymotion Emulater e instalo gapps y Genymotion-ARM-Translation_v1.1 todavía tengo este problema.
Prashant Maheshwari Andro
3
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.
enl8enmentnow
1
Alguna idea de por qué esto no funcionará en un Nexus 9 con 5.1.1. Funciona bien en una tableta Sony Xperia Z2 con 4.4.2. Compilado Sdk 21, min 17 y apuntado a 22.
Tenga
3
Tuve este problema al usar el emulador de Android Studio para un Nexus 5x en mi máquina Windows. Por razones de velocidad [10 veces más rápido], el valor predeterminado es simular el teléfono como si estuviera trabajando con una arquitectura Intel x86 [Snapdragon 808 de Nexus 5x se basa realmente en ARM: tomshardware.com/reviews/lg-g4,4353-2.html ] . Solucioné el error al ingresar al administrador AVD, seleccioné el dispositivo simulado que me estaba dando el error y hice clic en el botón Editar donde configuré una arquitectura ARM (armeabi-v7a). Después de este reinicio del cambio más el emulador, la instalación se realizó sin problemas
Antonino
150

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:

  1. Abra su xamarin .sln
  2. Haga clic derecho en su proyecto de Android
  3. Haga clic en propiedades
  4. Haga clic en Opciones de Android
  5. Haga clic en la pestaña 'Avanzado'
  6. En "Arquitecturas compatibles", haga lo siguiente:

    1. armeabi-v7a
    2. x86
  7. salvar

  8. F5 (compilación)

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 .

Guirnalda de asher
fuente
66
Esa solución también funcionó en Visual Studio 2017, para un proyecto Xamarin.Android.
corentinaltepe
1
Esto también funcionó para mí cuando uso un proyecto de aplicación Android WebView
JRodd
44
Parece que en Xamarin, en cada nuevo día hay un nuevo obstáculo inesperado que me impide ejecutar mi aplicación (que funcionó ayer). Como mi archivo csproj está en Dropbox, pude verificar el historial de versiones, y esta propiedad no estaba en el archivo ayer, faltaba por completo. Hoy, tuve que agregar la opción x86 para que la aplicación se ejecute. ¿Por qué demonios xamarin o android usan repentinamente diferentes valores predeterminados? ¡Esto es muy frustrante! De todos modos, gracias a personas como tú, puedo superar y seguir trabajando. ¡Muchas gracias y +1 por ti!
TMan
2
Ojalá pudiera votar más de una vez ... Probado y trabajando en VS 2017 para Mac.
JordiVilaplana
Para Visual Studio Community 2019 para Mac: 1. Haga clic derecho en su proyecto de Android 2. Haga clic en Opciones 3. Haga clic en Android Build 4. Avanzado
nulo
87

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
Driss Bounouar
fuente
2
Fallo [INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim
No funcionó para mí y no pude encontrar el (yourapp)-x86-debug.apkarchivo en la salida de mi proyecto.
Eido95
No necesariamente quiero dividir APK, ¿es esa una opción? @DrissBounouar
ericn
Puede usar el apk universal, presumiblemente tiene ambas arquitecturas.
Driss Bounouar
sigue enfrentando el mismo problema
Vikash Parajuli
61

Si usa Genymotion, necesita instalar ARM Translation y GApps

R00We
fuente
En algunas API que utilizó, debe agregar tanto "ARM Translation Installer v1.1" como "GApps para su versión de Android".
saneryee
44
ACTUALIZACIÓN 28 de mayo de 2017: esta guía ya no es compatible y probablemente no funcione. Por favor, no lo use ni solicite asistencia nunca más. de xda-developers
AndroidCoolestRulest
1
Puede seguir este enlace para instalar ARM Translation
Devansh Maurya
37

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]
IgorGanapolsky
fuente
1
Hola. Esto hizo que mi proyecto se compilara con éxito, pero aún así me dio el mismo error. Estoy trabajando en mac, genymotion. Además, en general, ¿esta configuración que usted dijo es solo para la versión de depuración o también para la compilación de lanzamiento?
myDoggyWritesCode
@ user3241111 Esto se puede usar tanto para depuración como para producción. ¿Has intentado limpiar tu proyecto? ¿O tal vez invalidar / reiniciar Android Studio?
IgorGanapolsky
1
@ user3241111 Si está utilizando gradlew para compilaciones de terminales de línea de comandos, aún puede limpiar su proyecto con gradle.
IgorGanapolsky
1
Probé esta solución, funcionó ... En mi proyecto no había ninguna APP_ABI. Pero lo agregué en consecuencia y construyó solo una apk y funciona. stackoverflow.com/a/35565901/3241111
myDoggyWritesCode
1
Además, acabo de agregar Gradle Daemon habilitado y ha acelerado mucho el proceso ... De todos modos, gracias por su apoyo :)
myDoggyWritesCode
11

Sé que hubo muchas respuestas aquí, pero la versión TL; DR es esta (si está usando Xamarin Studio):

  1. Haga clic derecho en el proyecto de Android en el árbol de soluciones
  2. Seleccione Options
  3. Ir Android Build
  4. Ir a la Advancedpestaña
  5. Verifique las arquitecturas que usa en su emulador (Probablemente x86/ armeabi-v7a/ armeabi)
  6. Hacer una aplicación kickass :)
Jonathan Perry
fuente
11

Esta solución funcionó para mí. Pruebe esto, agregue las siguientes líneas en el archivo build.gradle de su aplicación

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

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

Saba
fuente
66
Muchas gracias, me salvas el día. No sé por qué obtuve: implementación 'org.apache.directory.studio:org.apache.commons.io:2.4'
Pierrick HYMBERT
7

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.

muetzenflo
fuente
1
Estoy trabajando en Mac y probablemente esté construido para un dispositivo virtual x86. Intenté con la tableta personalizada genymotion también, no funcionó, y di el mismo error durante la instalación
myDoggyWritesCode
7

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

ingrese la descripción de la imagen aquí


fuente
6

Visual Studio mac: puede cambiar el soporte aquí:

ingrese la descripción de la imagen aquí

LeRoy
fuente
6

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'
    }
}
ediBersh
fuente
Gracias. Me ayudó con la integración de Bitcoin J.
Umer Kiani
Muchas gracias. Intento muchas soluciones, pero esta solución funciona para mí. Mi problema es que scrypt-1.4.0.jar no se instala en la versión de Android Pie (Nokia 7.1) Dispositivo
Sagar Pithiya
3

En mi caso, en un proyecto xamarin, en el error visual studio eliminado seleccionando propiedades -> Opciones de Android y marcando Usar tiempos de ejecución compartidos y Usar implementación rápida, en algunos casos uno de ellos ingrese la descripción de la imagen aquí

Saleem Kalro
fuente
2

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

myDoggyWritesCode
fuente
2

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,

  1. Descarga tu proyecto de Android
  2. Haga clic derecho y seleccione Editar proyecto ...
  3. Asegúrese de tener la línea anterior solo una vez en una configuración de compilación
  4. Salvar
  5. Haga clic derecho en su proyecto de Android y vuelva a cargar
Kusal Dissanayake
fuente
1

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.

Sumit Kumar
fuente
1

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

Khan.N
fuente
1

En general, para averiguar qué dependencia de la biblioteca tiene ABI incompatible,

  • compilar un archivo APK en Android Studio (menú Compilar> Compilar paquete (s) / APK (s)> Compilar APK (s) // actual el 01.04.2020
  • cambiar el nombre del archivo APK, reemplazando la extensión "apk" con la extensión "zip"
  • descomprimir el archivo zip en una nueva carpeta
  • ir a la carpeta libs
  • descubra qué bibliotecas * .jar con ABI incompatibles existen

Puede intentar actualizar la versión / eliminar / reemplazar estas bibliotecas para resolver INSTALL_FAILED_NO_MATCHING_ABIS cuando instale el problema apk

Denis Dmitrienko
fuente
0

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

Barry Fruitman
fuente
0

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.

Nieminen
fuente
0

En mi caso, necesitaba descargar la versión x86 de la aplicación.

  1. Vaya a https://www.apkmirror.com/
  2. Busca la aplicación
  3. Seleccione el primero de la lista.
  4. Mire la parte superior de la página, donde se encuentra [Nombre de la empresa]> [Nombre de la aplicación]> [Número de versión]
  5. Haga clic en el nombre de la aplicación
  6. Haga clic en 'Todas las variantes'
  7. La lista debe contener una variante x86 para descargar
Fidel
fuente
0

En mi caso, configurar las siguientes opciones me ayuda

ingrese la descripción de la imagen aquí

Stefan Michev
fuente