1 votes

Emulateur Android - INSTALL_FAILED_NO_MATCHING_ABIS : Échec de l'extraction des bibliothèques natives, res=-113

Lorsque j'essaie d'installer un apk par le biais du fichier monkeyrunner Script Python, obtention de l'erreur INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113 . Comment puis-je résoudre ce problème ?

Les détails de l'appareil virtuel sont énumérés ci-dessous :

  • CPU/ARM : x86
  • Niveau API : 24
  • Cible : Android 7.0 (Google Play)

0voto

xavier_fakerat Points 9582

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.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X