Comme mentionné ici : INSTALL_FAILED_NO_MATCHING_ABIS lors de l'installation de l'apk :
INSTALL_FAILED_NO_MATCHING_ABIS est le cas lorsque vous essayez d'installer une application qui a des fonctions nati qui possède des bibliothèques natives et qu'il n'y a pas de bibliothèque native pour votre pour l'architecture de votre processeur. Par exemple, si vous avez compilé une application pour armv7 et que vous essayez de l'installer sur un émulateur qui utilise l'architecture Intel cela ne fonctionnera pas
Pour contourner ce problème, vous devez obtenir ces bibliothèques dans le fichier /system/lib
.
Cela est possible grâce à l'utilisation de libhoudini.so
bibliothèques. Vous pouvez Racine votre émulateur et pousser les librairies via adb dans /system/lib
.
Vous pouvez trouver les bibliothèques aquí et les instructions sont également données.
En règle générale, vous devez procéder comme suit :
-
Téléchargez un paquet compressé sur l'internet et extrayez-le vers / system / lib / arm
(または / system / lib64
selon que la plate-forme est 32 bits ou 64 bits). lien de téléchargement des bibliothèques houdini x86
-
Deuxièmement, dans le répertoire /proc/sys/ fs/ binfmt_misc
sous le nom de "register" dans le fichier écrit dans une chaîne de caractères pour dire au noyau Linux, tous utilisent le jeu d'instruction ARM exécutable et la bibliothèque dynamique ELF. Le fichier est ouvert avec le programme houdini, et tous les fichiers ELF du jeu d'instructions ARM64 et de la bibliothèque dynamique sont ouverts avec le programme houdini64 (sur l'explication détaillée de binfmt_misc, vous pouvez vous référer à Linux comment spécifier un type de programme avec un programme spécifique à ouvrir (via binfmt_misc )
-
Vous pouvez remonter adb en tant que Root et pousser directement le dossier arm (avec les bibliothèques houdini) dans le répertoire /system/lib
comme suit :
adb -e push C:\Users\User25\Desktop\houdini\arm /system/lib
(N'oubliez pas de définir le chemin d'accès correct et les autorisations appropriées)
-
Une autre option que j'ai essayée personnellement est d'obtenir une image avd avec le bridge arm natif déjà activé (au cas où vous rencontreriez des problèmes avec le rootage de votre émulateur).
-
Il est préférable d'obtenir la moyenne de Lecteur RemixOS o Genymotion et extraire le system.img
, userdata.img
, ramdisk.img
et d'autres fichiers comme build.prop
etc et placez-les dans le dossier system images de votre émulateur (par exemple, si les images téléchargées sont pour un avd x86, copiez-les dans le répertoire system-images de votre émulateur et collez-les dans le dossier x86 du niveau d'api correct - quelque chose comme \system-images\android-26\google_apis\x86
et créez un avd basé sur celui-ci (c'est utile pour tester vos applications sur votre avd x86)
Vous devriez surmonter cette erreur, si tout échoue, utilisez un émulateur avec les outils de traduction d'arm.