38 votes

INSTALL_FAILED_CPU_ABI_INCOMPATIBLE sur un périphérique utilisant intellij

J'ai vu quelques questions à ce sujet, mais aucune avec de véritables réponses ou détails. Voici mon cas :

J'ai une application qui utilise Google Maps API v2 ce qui fonctionne très bien. Récemment, j'ai découvert que je ne pouvais pas l'installer sur ce pas un dispositif basé sur ARM.

Afin de cerner le problème, je travaille avec les échantillons de Google Maps fournis avec le SDK ( \sdk\extras\google\google_play_services\samples )

qui me donne le même message d'erreur au moment de l'installation :

Failure [INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]

J'obtiens ce message uniquement sur un appareil réel utilisant Intellij (12.1.1)

Cela fonctionne bien en utilisant à la fois Eclipse sur le dispositif réel et Intellij sur l'émulateur configuré avec le CPU : Intel Atom (x86)

Toute aide serait très appréciée !

UPDATE

Comme prévu, la même chose se produit avec Android Studio

103voto

FuegoFro Points 1356

Par défaut, IntelliJ part du principe que l'option libs dans la racine d'un module Android contient des bibliothèques natives, même s'il ne s'agit que de bocaux. Ainsi, le paquetage de l'APK fait croire qu'il s'agit de bibliothèques natives. Je viens d'avoir un problème similaire où mon application n'avait pas de code natif et fonctionnait sur l'émulateur par défaut, mais obtenait l'avertissement ABI lors de l'installation sur l'émulateur Genymotion. Pour résoudre ce problème, dites à IntelliJ (ou Android Studio) que vos bibliothèques ne sont pas du code natif :

  1. Ouvrir File -> Project Structure .
  2. Cliquez sur Modules sur le côté gauche de la fenêtre.
  3. Pour chaque module Android, développez la liste déroulante et sélectionnez l'option Android sous-thème.
  4. Dans le Structure à droite, supprimer le contenu de l'onglet Native libs directory (vous pouvez le laisser vide).
  5. Une fois que vous avez effectué cette opération pour chaque module Android du projet et appliqué les modifications, vous devrez peut-être reconstruire votre projet pour que les modifications soient prises en compte en choisissant Build -> Rebuild Project dans le menu global d'IntelliJ.

12voto

sreekumar Points 21

Le dernier Genymotion ne supporte pas les binaires ARM. Si vous avez du code natif compilé pour ARM, vous pouvez utiliser la traduction Genymotion-ARM. Il suffit de glisser-déposer ce fichier dans le dossier d'accueil de Genymotion et de redémarrer.

Référence. http://forum.xda-developers.com/showthread.php?t=2528952 .

3voto

terwxqian Points 401

Dans Android studio, corrigez ce problème :

1 Télécharger Genymotion-ARM-Translation_v1.1.zip

url de téléchargement :

https://forum.xda-developers.com/attachment.php?s=9f1870536cb530a1346794b6ef629e90&attachmentid=2680937&d=1397258016

2 Faites glisser le fichier zip dans votre dispositif virtuel en cours d'exécution et cliquez sur ok.

3 redémarrer le dispositif virtuel Genymotion

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X