web-dev-qa-db-fra.com

INSTALL_FAILED_CPU_ABI_INCOMPATIBLE sur l'appareil utilisant intellij

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

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

Afin de résoudre le problème, je travaille avec des exemples Google Maps fournis avec le SDK (\ sdk\extras\google\google_play_services\samples)

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

Failure [INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]

Je reçois ce message uniquement sur un appareil réel utilisant Intellij (12.1.1)

Cela fonctionne très bien en utilisant Eclipse sur un appareil réel et en utilisant Intellij sur l'émulateur configuré avec le processeur: Intel Atom (x86)

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

[~ # ~] mise à jour [~ # ~]

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

38
Androiderson

Par défaut, IntelliJ suppose que le dossier libs à la racine d'un module Android contient des bibliothèques natives, même s'il ne contient que des fichiers jars. Ainsi, il conditionne l'APK en le faisant ressembler comme ce sont des bibliothèques natives. J'ai juste eu un problème similaire où mon application n'avait pas de code natif et fonctionnait sur l'émulateur par défaut, mais a reçu 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 le sous-élément Android.
  4. Dans l'onglet Structure à droite, supprimez le contenu du Native libs directory champ (vous pouvez le laisser vide).
  5. Une fois que vous avez fait cela pour chaque Android dans le projet et appliqué les modifications, vous devrez peut-être reconstruire votre projet pour que les modifications aient lieu en choisissant Build -> Rebuild Project du menu global d'IntelliJ.
103
FuegoFro

La dernière Genymotion ne prend pas en charge ARM binaire. Si vous avez du code natif compilé pour ARM, vous pouvez utiliser Genymotion-ARM-Translation. Glissez et déposez simplement ce fichier dans le dossier de base de Genymotion et redémarrez.

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

12
sreekumar

Dans Android studio, corrigez ce problème:

1 Téléchargez Genymotion-ARM-Translation_v1.1.Zip

télécharger l'url:

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

2 Faites glisser le fichier Zip dans votre appareil virtuel en cours d'exécution et cliquez sur ok

3 Redémarrez l'appareil virtuel Genymotion

3
terwxqian