Ubuntu - Erreur: impossible de créer la carte SD

84

Je vois beaucoup de messages sur l'écriture sur la carte SD, mais je pense que mon problème est différent. Je ne parviens pas à créer la carte SD pendant le processus de création d'un AVD.

J'ai d'abord essayé d'utiliser le SDK Android et AVD Manager pour ce faire, en sélectionnant
Nom : my_avd
Cible : Android 2.2 - API niveau 8
Carte SD : Taille: 1024 MiB
Peau : Intégrée: Par défaut (HVGA)
Matériel : Propriété: LCD abstrait Densité, valeur: 160

Cela fait apparaître une fenêtre avec le message:
"Résultat de la création d'AVD 'my_avd':
Erreur: Impossible de créer la carte SD."

J'ai essayé de répéter le processus à partir de la ligne de commande, recevant une erreur similaire:

alex@alex-desktop:~$ android create avd -n my_avd -t 1 -c 1024M
Android 2.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Error: Failed to create the SD card.

Tenter de suivre les instructions d'utilisation de mksdcard était tout aussi improductif; Je pense que mon manque d'expérience de base avec Linux peut me causer un problème ici. Lorsque j'essaie d'utiliser mksdcard, il signale simplement qu'il ne peut pas trouver le fichier ou le répertoire. L'outil mksdcard est-il disponible pour une utilisation de cette manière sous Linux?

alex@alex-desktop:~$ mksdcard 1024M ./sdcard.iso
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory
alex@alex-desktop:~$ sudo android create avd -n my_avd -t 1 -c 1024M

J'ai ajouté le répertoire des outils android à ma variable PATH, mais j'ai l'impression qu'il y a évidemment quelque chose qui me manque. Peut-être une sorte de droits d'accès?

Tenter d'exécuter la commande android avec sudo n'a pas non plus semblé aider:

alex@alex-desktop:~/android-sdk-linux_x86/tools$ sudo ./android create avd -n my_avd -t 1 -c 1024M
Android 2.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Error: Failed to create the SD card.

J'ai même essayé d'installer Eclipse et le plugin ADT et d'exécuter le gestionnaire à partir de là en vain. Tous les conseils seraient très appréciés. Avertissement avancé que je suis un peu un utilisateur novice de Linux, donc même si cela semble être une chose évidente à vérifier, j'aurais quand même pu le manquer.

Alex Pritchard
la source
@Alex Pritchard: Vous n'avez probablement pas besoin d'une fausse carte SD de 1024M. Essayez plutôt 32M et voyez si vous avez plus de chance.
CommonsWare
@CommonsWare Hélas, la carte SD 32M ne parvient toujours pas à se créer. :(
Alex Pritchard
@Alex Pritchard: C'est assez étrange. Les images sont créées dans le même répertoire que le reste de l'AVD ( ~/.android/avd/whateveryoucalledit/), donc je ne peux pas vraiment comprendre comment vous pouvez créer un AVD mais pas un AVD avec une carte SD.
CommonsWare
@CommonsWare J'ai fait un peu plus de lecture et je pense avoir trouvé quelque chose. Je soupçonne qu'il peut y avoir un problème parce que j'utilise une installation Linux 64 bits et que je devrai peut-être installer ia32-libs. Je vais essayer cela quand je rentrerai chez moi et voir si cela aide.
Alex Pritchard
@Alex Pritchard: Ouais, je pense que vous en avez besoin. Surpris qu'il fonctionne du tout sans eux, en fait. J'ai dû passer par quelques girations pour qu'Android fonctionne sur ma configuration Ubuntu 64 bits, même si c'était il y a assez longtemps que j'oublie les détails.
CommonsWare

Réponses:

101

Alors j'ai trouvé le problème. J'utilisais une installation Linux 64 bits, sur laquelle le package ia32-libs n'était pas installé par défaut. L'utilitaire mksdcard ne fonctionnera pas sans ce package. Après l'avoir installé, j'ai pu construire l'AVD sans problème en utilisant le gestionnaire AVD.

Alex Pritchard
la source
1
Merci, ubuntu 12.04 x64, il a résolu le problème. Je remarque seulement que ces ia32-libs font 260 Mo environ
yetanothercoder
43
Oui! J'ai trouvé le chemin sans tous ces horribles 240 paquets de dépendances! Au lieu d' ia32-libsinstaller libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386. Félicitations à ce gars, qui a sauvé mon ordinateur (et j'espère d'autres) de toutes les ordures: stackoverflow.com/a/10473415/998772 PS J'utilise Linux Mint 13
pavel_kazlou
4
Sur Fedora,dnf install glibc.i686 libstdc++.i686
Dominic Cleal
Merci. J'utilise Ubuntu 14.04 LTS amd et cela résout le problème. J'ai installé des packages séparés comme @pavel_kazlou suggéré
Joao Polo
1
@nimrodm Je suis continuellement surpris de l'activité sur ce message (mon article SO le plus populaire à ce jour, hah).
Alex Pritchard
80

Sur Ubuntu 16.04 LTS x64, en utilisant Android Studio 2.1 (également testé sur 2.3.3), exécutez à partir d'un terminal:

sudo apt-get install lib32stdc++6
GeekLei
la source
J'ai installé le SDK manuellement (sans Android Studio), et cela a fonctionné pour moi.
CTodea
1
En plus de cela, j'ai dû renommer le ~ / Android / Sdk / emulator / lib64 / libstdc ++ / libstdc ++. So.6 et libstdc ++. So.6.0.18 en quelque chose d'autre afin de faire fonctionner l'émulateur. Je ne pouvais que le faire fonctionner sans opengl hard. --------------- ./emulator @ Nexus_4_API_23 n'a pas réussi à créer un tirage getGLES2ExtensionString: Impossible de créer le tampon GLES 2.x! Impossible d'obtenir la chaîne d'extensions GLES 2.x! Impossible d'initialiser l'émulateur de framebuffer émulé: ERREUR: Impossible d'initialiser l'émulation OpenglES, utilisez «-gpu off» pour la désactiver.
Francisco Junior
1
Bingo. Ubuntu 17.04.
piratemurray
22

J'ai eu la même erreur que vous et je viens de la résoudre, alors peut-être que cela peut vous aider (bien que je ne pense pas que votre erreur soit causée par le même problème que moi).

J'ai constaté que tous les outils de ../tools n'ont pas l'autorisation d'exécuter, alors j'ai utilisé

chmod -R 777 ../tools

depuis la ligne de commande et ça marche enfin

cynicholas
la source
1
Merci pour votre réponse. Stack Overflow fournit une mise en forme pour améliorer la lisibilité de votre réponse. Vous pouvez utiliser la mise en forme du code pour identifier la commande shell et la distinguer de votre autre texte.
this.josh
Works, mais cela se traduit par .txt, .xmlfichiers , etc , ayant la permission d' exécution ... serait bien de connaître les dossiers individuels impliqués
funkybro
10

Comme d'autres l'ont déjà écrit, le problème est que votre distribution Linux est une distribution 64 bits et, à l'heure actuelle, Android Virtual Device ( AVD ) a besoin de la bibliothèque x86 pour fonctionner correctement.

Quelqu'un a suggéré d'installer ia32-libs . Cependant, dans Ubuntu 14.04 LTS, vous ne trouverez pas cette bibliothèque. J'ai résolu en utilisant ces bibliothèques alternatives: lib32z1 , lib32ncurses5 , lib32bz2-1.0 et lib32stdc ++ .

sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++
Paolo Rovelli
la source
3
Le seul dont j'avais besoin était lib32stdc ++ 6.
Big McLargeHuge
6

Je viens de rencontrer le même problème. AUCUN des outils du SDK ne fonctionnera sur Ubuntu 64 bits sans installer ia32-libs (EXEMPLE: sudo apt-get install ia32-libs).

paulsm4
la source
5

Dans le système d'exploitation élémentaire et ubuntu, les solutions consistaient à installer les packages suivants

sudo apt-get install lib32ncurses5 lib32z1
sudo apt-get install libgcc1:i386
Lugty
la source
Cela a fonctionné pour moi sur Kubuntu 17.04. Mais libstdc ++ doit encore être supprimé.
Avamander
4
alex@alex-desktop:~$ mksdcard 1024M ./sdcard.iso
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory
alex@alex-desktop:~$ sudo android create avd -n my_avd -t 1 -c 1024M

J'ai trouvé ce problème et je trouve d'abord un moyen:

cd /home/alex/android-sdk-linux_x86/tools/

puis écrivez ceci:

sudo chmod 755 mksdcard
mksdcard 1024M ./sdcard.iso
sudo android create avd -n my_avd -t 1 -c 1024M

ça devrait marcher :)

imon_iut
la source
4

Si vous utilisez Kali, Debian Jessie (ou Ubuntu 13.10+), essayez

sudo apt-get installer lib32stdc ++ 6

au lieu des ia32-libs mentionnés ci-dessus.

Larry_C
la source
4
sudo apt-get install lib32stdc++6

Après cela, vous pourriez obtenir les erreurs suivantes

Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  49
  Current serial number in output stream:  48
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  49
  Current serial number in output stream:  48
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
emulator: WARNING: VM heap size set below hardware specified minimum of 228MB
X Error of failed request:  BadValue (integer parameter out of range for operation)
emulator: WARNING: Setting VM heap size to 384MB
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  33
  Current serial number in output stream:  34
QObject::~QObject: Timers cannot be stopped from another thread

Utilisez ces 3 commandes pour résoudre ces

mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6{,.bak}
mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6.0.18{,.bak}
ln -s /usr/lib/libstdc++.so  ~/Android/Sdk/tools/lib64/libstdc++/**
Kumar Ayush
la source
3

J'ai également eu ce problème et après avoir installé le package i386, j'ai pu créer une carte SD pour mon émulateur Android, j'ai dû faire deux étapes

sudo apt-get update
sudo apt-get install ia32-libs

Une fois cela terminé, j'ai pu créer un émulateur avec une carte SD attachée

Rubenj
la source
2

J'avais un problème différent: les outils de plate-forme étaient sur mon chemin, mais les outils ne l'étaient pas. Donc, tout a fonctionné sauf que l'image SDCard n'a pas été créée. Il n'y a eu aucun avis à ce sujet lorsque j'ai créé l'avd dans eclipse et que le périphérique virtuel a été créé avec une très petite carte SD, ce qui l'a amené à lancer constamment l'erreur de support non disponible lors de l'installation de l'application.

Andrew Paul Simmons
la source
1

J'ai eu un problème différent en utilisant Ubuntu 32 bits. Quand j'ai essayé d'exécuter mksdcard à la main, j'obtenais une erreur de fichier introuvable.

Le problème était open-jre / jdk. J'ai installé oracle java et le problème a été résolu. Malheureusement, vous ne pouvez plus installer oracle java via apt / synaptic et devez sauter à travers quelques obstacles supplémentaires:

https://github.com/flexiondotorg/oab-java6

CosmicCat
la source
1

Lors des tests Debian, lorsque j'ai essayé d'exécuter ./tools/mksdcards, j'ai reçu l'erreur:

error while loading shared libraries: libstdc++.so.6: 
cannot open shared object file: No such file or directory

L'installation de lib32stdc ++ 6 résout le problème et a été possible de créer le fichier avd.

David Carlos
la source
0

MyOS est Oracle Unbreakable Linux 6 - pour résoudre ce problème, j'ai dû installer le package libstdc ++ - 4.4.6-3.el6.i686.

SerVel
la source
0

Après beaucoup d'installation et sans résultat, j'ai trouvé cela et cela a fonctionné.

Cela se produit car certains fichiers exécutables ne sdk/toolspeuvent pas être exécutés. Accédez à vos dossiers Android Studio et Android SDK et rendez tous les répertoires et fichiers exécutables à l'aide de cette commande:

chmod +x -R *
Ahmed Mubarak
la source
Cela me fait craquer que 9 ans plus tard, ce problème se pose toujours. Bons moments Merci d'avoir partagé votre expérience.
Alex Pritchard
-1

Essayez de déplacer le dossier sdk android vers le dossier d'accueil. Ça marche.

user3133745
la source
-1

J'ai eu le même problème. Après le dépannage, j'ai appris que c'était à cause de mon Windows 32 bits et ma mksdcard est compatible avec 64 bits uniquement. Ensuite, je viens de copier une carte mksdcard de 32 bits dans le dossier tools et j'ai supprimé l'ancienne. Cela a résolu mon problème.

Jomia
la source
-1

Pour les personnes qui ont rencontré le même problème sur Windows. Pour moi, c'était parce que l'outil mksdcard.exe n'a pas pu s'exécuter avec succès. Certains outils SDK tels que mksdcard.exe nécessitent l'exécution de Microsoft Visual C ++. Allez donc dans vos propriétés système et vérifiez votre type de système:

entrez la description de l'image ici

Ensuite, en fonction de votre type de système, (pour moi c'était x64), téléchargez / mettez à jour le dernier redistribuable Microsoft Visual C ++ pour Visual Studio 2019 à partir du lien https://visualstudio.microsoft.com/downloads/

entrez la description de l'image ici

Après avoir installé Microsoft Visual C ++, mon problème a été résolu. J'ai pu créer AVD avec succès.

minable
la source