2010-10-07 22 views
78

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 construcción de un AVD.Ubuntu - Error: Error al crear la tarjeta SD

inicialmente trató de usar el SDK de Android y AVD Manager para hacer esto, la selección de
Nombre: my_avd
Objetivo: Android 2.2 - API Nivel 8
tarjeta SD: Tamaño: 1024 MiB
piel: Built-In: por defecto (HVGA)
hardware: propiedad: abstraído LCD Density, Valor: 160

Esto hace aparecer una ventana con el mensaje:
"Resultado de la creación de AVD 'my_avd':
error:. No se pudo crear la tarjeta SD"

I tratado de repetir el proceso desde la línea de comandos, de recibir un error similar:

[email protected]:~$ 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. 

El intento de seguir las instrucciones para el uso de mksdcard era igualmente improductivo; Creo que mi falta básica de experiencia en Linux me puede causar un problema aquí. Cuando trato de usar mksdcard, solo informa que no puede encontrar el archivo o directorio. ¿Está disponible la herramienta mksdcard para usar de esta manera en Linux?

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

He añadido el directorio de herramientas androide a mi variable PATH, pero siento que es evidente que hay algo más que me falta. Tal vez algún tipo de derechos de acceso?

Intentar ejecutar el comando con sudo androide no pareció ayudar a cualquiera:

[email protected]:~/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 he intentado instalar Eclipse y el plugin ADT y ejecuta el gestor de allí en vano. Cualquier consejo sería muy apreciado. Aviso avanzado de que soy un usuario novato de Linux, por lo que incluso si parece obvio que es algo obvio que revisar, aún podría haberlo perdido.

Gracias!

+0

@Alex Pritchard: Es probable que no necesita una tarjeta SD 1024M falsa. Pruebe 32M en su lugar y vea si tiene mejor suerte. – CommonsWare

+0

@CommonsWare Por desgracia, la tarjeta SD de 32M sigue sin poder crearse. :( –

+0

@Alex Pritchard: Es bastante extraño. Las imágenes se crean en el mismo directorio que el resto de AVD ('~/.android/avd/whateveryoucalledit /'), por lo que no puedo comprender cómo se puede crear un AVD pero no un AVD con una tarjeta SD. – CommonsWare

Respuesta

97

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

+1

Gracias , ubuntu 12.04 x64, resolvió el problema. Solo me gustaría comentar que estas ia32-libs son 260mb aproximadamente – yetanothercoder

+0

"Se instalarán los siguientes paquetes nuevos: [muro de texto]" ... –

+42

¡Sí! ¡Encontré el camino sin todos esos horribles 240 paquetes de dependencia! En lugar de 'ia32-libs' instala' libstdC++ 6: i386 libgcc1: i386 zlib1g: i386 libncurses5: i386'. Felicitaciones a este tipo, que salvó mi (y afortunadamente otros) computadora de toda la basura: http://stackoverflow.com/a/10473415/998772 P.S. Estoy usando Linux Mint 13 –

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).

22

Tuve el mismo error que tú y acabo de resolverlo, así que tal vez pueda ayudarte (aunque no creo que tu error sea causado por el mismo problema que yo).

Encontré que todas las herramientas en ../ herramientas no tienen permiso para excute, por lo que utilizan

chmod -R 777 ../tools 

desde la línea de comandos y que finalmente funciona

+1

Gracias por contribuir con una respuesta. Stack Overflow proporciona formateo para mejorar la legibilidad de su respuesta. Puede usar el formato de código para identificar el comando de shell y establecerlo aparte de su otro texto. –

+0

Funciona, pero esto da como resultado que los archivos '.txt',' .xml', etc. tengan permisos ejecutables ... sería bueno conocer los archivos individuales involucrados – funkybro

2

que tenía un problema diferente: la plataforma de herramientas estaba en mi camino, pero no estaba herramientas . Entonces, todo funcionó, excepto que la imagen de la tarjeta SD no fue creada. No se notó esto cuando creé el avd en eclipse y el dispositivo virtual se creó con una tarjeta sd realmente pequeña que causaba que arrojara constantemente el error de medios no disponibles en la instalación de la aplicación.

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

he encontrado este problema & i encontrar una manera primera:

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

luego escribir esto:

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

debería funcionar :)

1

que tenía una problema diferente con Ubuntu 32bit. 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 fue reparado. Por desgracia ya no se puede instalar Java de Oracle a través de apt/sináptica y tiene que saltar a través de unos aros adicionales:

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

0

myos es Oracle Unbreakable Linux 6 - para resolver este problema que tuve que instalar libstdC++ - 4.4.6 -3.el6.i686 paquete.

3

también tenía este problema y después de instalar el paquete i386 yo era capaz de crear una tarjeta SD para mi emulador de Android tuve que hacer dos pasos

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

Después de esto se terminó , Pude crear un emulador con una tarjeta SD conectada

+0

Esto funcionó para mí en ubuntu 12.0.4 –

0

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

10

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

Alguien ha sugerido instalar ia32-libs. Sin embargo, en Ubuntu 14.04 LTS no encontrará esta biblioteca. He resuelto el uso de estas librerías alternativas: lib32z1, lib32ncurses5, lib32bz2-1.0 y lib32stdC++.

sudo apt-get update 
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++ 
+3

El único que necesitaba era lib32stdC++ 6. –

0

Tuve el mismo problema. Después de la resolución de problemas, supe que era debido a que mi Windows es de 32 bits y que mi mksdcard es compatible solo con 64 bits. Luego, simplemente copié una tarjeta de memoria de 32 bits en la carpeta de herramientas y borré la anterior. Solucionó mi problema.

2

En Debian Testing, cuando traté de correr ./tools/mksdcards, recibí el error:

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

Instalación lib32stdC++ 6 resuelve el problema, y ​​fue posible crear la avd.

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.

75

En Ubuntu 16.04 LTS 64, usando Android Studio 2.1 (también probado en 2.3.3), dirigido desde un terminal:

sudo apt-get install lib32stdc++6 
+0

He instalado el SDK manualmente (sin Android Studio), y esto funcionó para mí. – CTodea

+0

funcionó para mí. Buen trabajo –

+1

Además de eso, tuve que cambiar el nombre del ~/Android/Sdk/emulator/lib64/libstdC++/libstdC++. So.6 y libstdC++. So.6.0.18 a otra cosa para hacer que el emulador se ejecutara. Solo pude hacer que funcionara sin opengl tough. --------------- ./emulator @ Nexus_4_API_23 no se pudo crear dibujable getGLES2ExtensionString: No se pudo crear GLES 2.x Pbuffer! ¡No se pudo obtener la cadena de extensiones GLS 2.x! No se pudo inicializar el emulador de marco emulado emulador: ERROR: no se pudo inicializar la emulación OpenGLES, use '-gpu off' para deshabilitarlo. –

4
sudo apt-get install lib32stdc++6 

Después de esto usted puede ser que consiga 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++/** 
4

En Elementary OS y Ubuntu, las soluciones fue la instalación de los siguientes paquetes

sudo apt-get install lib32ncurses5 lib32z1 
sudo apt-get install libgcc1:i386 
+0

Esto funcionó para mí en Kubuntu 17.04. Pero libstdC++ tiene que ser eliminado. – Avamander

Cuestiones relacionadas