Ubuntu - Error: no se pudo crear la tarjeta SD

84

Veo muchas publicaciones sobre cómo escribir en la tarjeta SD, pero creo que mi problema es diferente. No puedo crear la tarjeta SD durante el proceso de creación de un AVD.

Inicialmente intenté usar Android SDK y AVD Manager para hacer esto, seleccionando
Nombre : my_avd
Destino : Android 2.2 - API Nivel 8
Tarjeta SD : Tamaño: 1024 MiB
Piel : Integrada: Predeterminada (HVGA)
Hardware : Propiedad: LCD abstraído Densidad, valor: 160

Aparecerá una ventana con el mensaje:
"Resultado de crear AVD 'my_avd':
Error: No se pudo crear la tarjeta SD".

Intenté repetir el proceso desde la línea de comando y recibí un error similar:

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.

Intentar seguir las instrucciones para usar mksdcard fue igualmente improductivo; Creo que mi falta básica de experiencia en Linux puede estar causando un problema aquí. Cuando intento usar mksdcard, solo informa que no puede encontrar el archivo o directorio. ¿Está disponible la herramienta mksdcard para su uso en 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

Agregué el directorio de herramientas de Android a mi variable PATH, pero siento que obviamente me falta algo más. ¿Quizás algún tipo de derechos de acceso?

Intentar ejecutar el comando de Android con sudo tampoco pareció ayudar:

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.

Incluso intenté instalar Eclipse y el complemento ADT y ejecutar el administrador desde allí sin éxito. Cualquier consejo sería muy apreciado. Advertencia avanzada de que soy un usuario de Linux un tanto novato, por lo que incluso si parece una cosa obvia y obvia de verificar, aún podría haberlo perdido.

Alex Pritchard
fuente
@Alex Pritchard: Probablemente no necesite una tarjeta SD falsa de 1024M. Pruebe 32M en su lugar y vea si tiene mejor suerte.
CommonsWare
@CommonsWare Por desgracia, la tarjeta SD de 32M aún no se puede crear. :(
Alex Pritchard
@Alex Pritchard: Eso es bastante extraño. Las imágenes se crean en el mismo directorio que el resto del AVD ( ~/.android/avd/whateveryoucalledit/), por lo que no puedo entender cómo se puede crear un AVD pero no un AVD con una tarjeta SD.
CommonsWare
@CommonsWare He estado leyendo un poco más y creo que podría haber encontrado algo. Sospecho que puede haber algún problema porque estoy usando la instalación de Linux de 64 bits y es posible que deba instalar ia32-libs. Voy a intentar esto cuando regrese a casa y veré si ayuda.
Alex Pritchard
@Alex Pritchard: Sí, creo que los necesitas. Sorprende que funcione sin ellos, en realidad. Tuve que pasar por algunos giros para que Android se ejecutara en mi configuración de Ubuntu de 64 bits, aunque eso fue lo suficiente como para olvidar los detalles.
CommonsWare

Respuestas:

101

Entonces encontré el problema. Estaba usando una instalación de Linux de 64 bits, que no tenía el paquete ia32-libs instalado de forma predeterminada. La utilidad mksdcard no se ejecutará sin este paquete. Después de instalarlo, pude construir el AVD sin problemas usando el administrador de AVD.

Alex Pritchard
fuente
1
Gracias, ubuntu 12.04 x64, resolvió el problema. Solo diría que estos ia32-libs tienen 260 MB aproximadamente
yetanothercoder
43
¡Si! ¡Encontré el camino sin todos esos horribles paquetes de 240 dependencias! En lugar de ia32-libsinstalar libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386. Felicitaciones a este tipo, que salvó mi (y con suerte otros) computadora de toda la basura: stackoverflow.com/a/10473415/998772 PD Estoy usando Linux Mint 13
pavel_kazlou
4
En Fedora,dnf install glibc.i686 libstdc++.i686
Dominic Cleal
gracias. Utilizo Ubuntu 14.04 LTS amd y resuelve el problema. Instalé paquetes separados como sugirió @pavel_kazlou
Joao Polo
1
@nimrodm Me sorprende continuamente la actividad en esta publicación (mi publicación SO más popular hasta la fecha, ja).
Alex Pritchard
80

En Ubuntu 16.04 LTS x64, con Android Studio 2.1 (también probado en 2.3.3), ejecute desde una terminal:

sudo apt-get install lib32stdc++6
GeekLei
fuente
Instalé el SDK manualmente (sin Android Studio) y esto funcionó para mí.
CTodea
1
Además de eso, tuve que cambiar el nombre de ~ / Android / Sdk / emulator / lib64 / libstdc ++ / libstdc ++. So.6 y libstdc ++. So.6.0.18 a otra cosa para que el emulador se ejecute. Solo pude hacer que funcionara sin opengl hard. --------------- ./emulator @ Nexus_4_API_23 no pudo crear getGLES2ExtensionString dibujable: ¡No se pudo crear GLES 2.x Pbuffer! ¡No se pudo obtener la cadena de extensiones GLES 2.x! No se pudo inicializar el emulador de framebuffer emulado: ERROR: No se pudo inicializar la emulación OpenglES, use '-gpu off' para deshabilitarlo.
Francisco Junior
1
Bingo. Ubuntu 17.04.
piratemurray
22

Tuve el mismo error que tú y lo acabo de resolver, así que quizás pueda ayudarte (aunque no creo que tu error sea causado por el mismo problema que yo).

Descubrí que todas las herramientas de ../tools no tienen permiso para ejecutar, así que usé

chmod -R 777 ../tools

desde la línea de comando y finalmente funciona

cynicholas
fuente
1
Gracias por aportar una respuesta. Stack Overflow proporciona formato para mejorar la legibilidad de su respuesta. Puede utilizar el formato de código para identificar el comando de shell y diferenciarlo del resto de texto.
this.josh
Obras, pero esto da lugar .txt, .xmlarchivos, etc que tienen permiso de ejecución ... sería bueno saber los archivos individuales involucrados
funkybro
10

Como ya han escrito otros, el problema es que su distribución de Linux es de 64 bits y, en la actualidad, el dispositivo virtual Android ( AVD ) necesita la biblioteca x86 para funcionar correctamente.

Alguien ha sugerido instalar ia32-libs . Sin embargo, en Ubuntu 14.04 LTS no encontrará esta biblioteca. Resolví usando estas bibliotecas alternativas: lib32z1 , lib32ncurses5 , lib32bz2-1.0 y lib32stdc ++ .

sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++
Paolo Rovelli
fuente
3
El único que necesitaba era lib32stdc ++ 6.
Big McLargeHuge
6

Acabo de encontrar el mismo problema. NINGUNA de las herramientas del SDK se ejecutará en Ubuntu de 64 bits sin instalar ia32-libs (EJEMPLO: sudo apt-get install ia32-libs).

paulsm4
fuente
5

En el sistema operativo elemental y ubuntu, la solución fue instalar los siguientes paquetes

sudo apt-get install lib32ncurses5 lib32z1
sudo apt-get install libgcc1:i386
Lugty
fuente
Esto funcionó para mí en Kubuntu 17.04. Pero libstdc ++ aún debe eliminarse.
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

Encontré este problema y primero encuentro una manera:

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

entonces escribe esto:

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

deberia de funcionar :)

imon_iut
fuente
4

Si está utilizando Kali, Debian Jessie (o Ubuntu 13.10+), intente

sudo apt-get install lib32stdc ++ 6

en lugar de los ia32-libs mencionados anteriormente.

Larry_C
fuente
4
sudo apt-get install lib32stdc++6

Después de esto, es posible que obtenga los siguientes errores

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

Utilice estos 3 comandos para resolver esos

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
fuente
3

También tuve este problema y después de instalar el paquete i386 pude crear una tarjeta SD para mi emulador de Android.Tuve que hacer dos pasos.

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

Una vez que esto terminó, pude crear un emulador con una tarjeta SD adjunta

rubenj
fuente
2

Tuve un problema diferente: las herramientas de plataforma estaban en mi camino pero las herramientas no. Entonces, todo funcionó, excepto que no se creó la imagen SDCard. No hubo ningún aviso de esto cuando creé el avd en eclipse y el dispositivo virtual se creó con una tarjeta sd realmente pequeña, lo que provocó que arrojara constantemente el error de medios no disponibles en la instalación de la aplicación.

Andrew Paul Simmons
fuente
1

Tuve un problema diferente al usar Ubuntu de 32 bits. Cuando intenté ejecutar mksdcard a mano, recibí un error de archivo no encontrado.

El problema era open-jre / jdk. Instalé Oracle Java y el problema se solucionó. Desafortunadamente, ya no puede instalar Oracle Java a través de apt / synaptic y tiene que pasar por algunos obstáculos adicionales:

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

CosmicCat
fuente
1

En las pruebas de Debian, cuando intenté ejecutar ./tools/mksdcards, recibí el error:

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

La instalación de lib32stdc ++ 6 resuelve el problema y fue posible crear el archivo avd.

David Carlos
fuente
0

MyOS es Oracle Unbreakable Linux 6; para resolver este problema, tuve que instalar el paquete libstdc ++ - 4.4.6-3.el6.i686.

SerVel
fuente
0

Después de mucha instalación y no obtener ningún resultado, encontré esto y funcionó.

Esto sucede porque algunos archivos ejecutables en sdk/toolsno se pueden ejecutar. Vaya a las carpetas de Android Studio y Android SDK y haga que todos los directorios y archivos sean ejecutables con este comando:

chmod +x -R *
Ahmed Mubarak
fuente
Me hace reír que 9 años después este problema todavía surge. Buenos tiempos, gracias por compartir tu experiencia.
Alex Pritchard
-1

Intente mover la carpeta sdk de Android a la carpeta de inicio. Funciona.

user3133745
fuente
-1

Yo tuve el mismo problema. Después de la resolución de problemas, supe que era porque mi Windows es de 32 bits y mi mksdcard es compatible solo con 64 bits. Luego copié una mksdcard de 32 bits en la carpeta de herramientas y eliminé la anterior. Resolvió mi problema.

Jomia
fuente
-1

Para las personas que enfrentaron el mismo problema en Windows. Para mí, fue porque la herramienta mksdcard.exe no pudo ejecutarse correctamente. Algunas herramientas de SDK, como mksdcard.exe, requieren un tiempo de ejecución de Microsoft Visual C ++. Así que vaya a las propiedades de su sistema y verifique su tipo de sistema:

ingrese la descripción de la imagen aquí

Luego, según su tipo de sistema, (para mí fue x64) descargue / actualice el último Microsoft Visual C ++ Redistributable para Visual Studio 2019 desde el enlace https://visualstudio.microsoft.com/downloads/

ingrese la descripción de la imagen aquí

Después de instalar Microsoft Visual C ++, se solucionó mi problema. Pude crear AVD con éxito.

shaby
fuente