SDK de Android en una máquina Linux de 64 bits

97

¿Es posible desarrollar usando el SDK de Android en una máquina Linux de 64 bits? Las descargas de SDK disponibles parecen ser solo para versiones de 32 bits de Linux.

dzhelil
fuente

Respuestas:

42

Sí lo es. Necesita instalar las bibliotecas ia32. Consulte la sección de solución de problemas de Ubuntu Linux .

apt-get install ia32-libs
apt-get install sun-java6-jdk
Matt Huggins
fuente
5
ia32-libs no se instalaría en mi máquina. Vea la respuesta de notz a continuación.
Matthew Gilliard
5
Esto solo es apropiado para las versiones de Ubuntu antes de que incorporaran el soporte Multiarch. El enfoque correcto ahora es instalar los paquetes i386 correctos
Jacob
Es irónico que la respuesta "correcta" solo sea correcta para esa fracción de máquinas de 64 bits que ejecutan Ubuntu / Gnome. La fragmentación de Linux sugiere que la respuesta "correcta" es una más general o una combinación de todas las siguientes respuestas parcialmente correctas. Por mi parte, prefiero la respuesta más generalizada, ya que hay demasiadas variaciones y actualizaciones posibles para estar seguro de que están completas y no son obsoletas. Mi voto sería a favor de un bonito "Sí, es posible. RTFM e instalar los paquetes de 32 bits / i386", estilo de respuesta neutral del proveedor. Para su información, no lo arreglarán porque quieren que usemos Android Studio en su lugar.
Sinthia V
Ya no hay sección de solución de problemas en este enlace, esto va a las instrucciones de instalación actuales: developer.android.com/studio/install.html seleccione 'linux' en el cuadro de selección de plataforma superior derecho.
amotzg
182

En (K) Ubuntu necesita los siguientes paquetes de 32 bits:

sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

para ejecutar el emulador necesita ese paquete adicional:

sudo apt-get install libsdl1.2debian:i386
notz
fuente
12
Un gran GRACIAS por esta respuesta, salvó a mi computadora de instalar ia32-libs (recomendado en todas partes), que junto con los paquetes que mencionó trae un vagón de otras dependencias inútiles. Su solución funcionó para mi Linux Mint 13.
pavel_kazlou
De acuerdo con el comentarista anterior, ubuntu 12.04 64bit
Matthew Gilliard
4
Trabajó para mi Ubuntu 12.10 64bit. ¡Muchas gracias!
1
Ubuntu 13.04 de 64 bits todavía tiene el mismo problema con el SDK de ADT, y esta solución también me funcionó allí.
GrandOpener
2
También funciona para Ubuntu 14.04 de 64 bits. ¡Muchas gracias!
Langley
34

El SDK de Android requiere:

  • Fedora 17 de 64 bits con SDK de Android:

    sudo yum install glibc.i686 zlib.i686 libstdc++.i686 ncurses-libs.i686
  • Fedora 20 de 64 bits con SDK de Android

    sudo yum install glibc zlib libstdc++ ncurses-libs mesa-libGL-devel adb
MariuszS
fuente
1
gracias por la información específica de Fedora. la ayuda oficial solo tiene los paquetes de ubuntu listados
gspatel
2
Cuando intenté esto por primera vez, obtuve "Error: Versiones protegidas de multilib: libstdc ++ - 4.7.2-2.fc17.i686! = Libstdc ++ - 4.7.0-5.fc17.x86_64". Se
corrigió
1
la línea de comando utilizada para fedora 17 todavía funciona para fedora 21
Sombriks
@MariuszS, en ese segundo escenario, puede aclarar lo que quiere decir con "SDK de Android de 64 bits". Tengo entendido que el SDK de Android tiene binarios de 32 bits, por lo que tenemos este problema en primer lugar.
Carlos Macasaet
No estoy seguro, pero probablemente hace algún tiempo hubo dos versiones (probablemente incluidas con eclipse de 64 bits). Respuesta actualizada
MariuszS
15

Para Debian Wheezy , debe habilitar multiarch y luego instalar las bibliotecas dependientes como se enumeran en las otras respuestas o según lo necesiten los binarios del directorio tools o platform-tools:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386

Para más bibliotecas, consulte con ldd los archivos .so referenciados.

plataforma-herramientas $ ldd adb                       
    linux-gate.so.1 => (0xf77bb000)
    librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf779b000)
    libncurses.so.5 => no encontrado
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7781000)
    libstdc ++. so.6 => no encontrado
    libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf775b000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf773e000)
    libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf75db000)
    libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf75d6000)
    /lib/ld-linux.so.2 (0xf77bc000)

Así que continúe instalando libncurses5: i386 y libstdc ++ 6: i386 para poder ejecutar

plataforma-herramientas $ ./adb 
Android Debug Bridge versión 1.0.31
...
sebastianwagner
fuente
¡Gracias @ user2255304! Esto funcionó para mí. Estaba intentando instalar Android Studio y android-studio/sdk/tools/mksdcardera un ejecutable de 32 bits. Siguió los pasos anteriores e instaló libc6:i386y libstdc++6:i386. El binario ahora funciona bien.
Rajkumar S
9

Para Ubuntu 13.1, ia32-libs ya no está disponible. Entonces, puedes probar este:

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6
usuario1079877
fuente
Estos nombres de paquetes también funcionan para Ubuntu 14.04. Este me parece que es el enfoque 'correcto' porque estos paquetes provienen del repositorio de arquitectura amd64. El comentario anterior sugirió instalar: 386 paquetes mezcla paquetes de arquitectura que parece arriesgado.
Don Park
@DonPark No, no es arriesgado. Se llama multiarca.
Léo Lam
5

En CentOS 6.2 lo hice funcionar con lo siguiente:

yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686

Khagler
fuente
3
¡También funciona en CentOS 7!
Philippe David
4

Para aquellos que usan Slackware, haga clic aquí.

Lo probé con corriente y funciona.

En resumen, debe habilitar el soporte de 32 bits instalando paquetes multilib.

Pasos:

1) Descarga el paquete:

> wget -np -nH -r -A txz,tgz \
> http://slackware.com/~alien/multilib/14.0/

2) instalar paquetes:

~/multilib$ \
> cd \~alien/multilib/14.0/
~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *.t?z"

3) instalar paquetes de compatibilidad:

~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *-compat32/*/*.t?z"

Reinicie el sistema y listo.

Milán Krstic
fuente
1

Para openSUSE puede instalar el paquete de patrones de 32 bits

su zypper install -t patrón de 32 bits

Steffen Christensen
fuente
1

En Ubuntu 13.10

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

Venky
fuente
0

Puede construir sdk usted mismo. Intentaré. La versión de 32 bits es muy lenta.

imcaptor
fuente
0

Presunción: la versión de Android SDK de 32 bits está instalada

En mi sistema operativo Ubuntu 12 de 64 bits, no tuve que instalar ninguno de los paquetes mencionados en los comentarios anteriores. Instale lo siguiente usando Android SDK Manager-
Bajo Tools:
Android SDK Tools
Android SDK Platform-tools
Latest Android SDK Build-tools

Bajo la última API de Android (en mi caso Android 4.3 (API 18)):
SDK Platform
ARM EABI v7a System Image

Bajo Extras:
Android Support Library

Advertencia: antes había intentado usar el ia32-libspaquete. Se instaló correctamente y pude ejecutar mis aplicaciones de Android. Sin embargo, si reiniciaba la máquina, nunca arrancaría. Por lo tanto, sugiero que se abstenga de instalar el ia32-libspaquete. Si funcionó para usted, entonces genial. Tal vez fue un problema restringido a mi PC en ese momento.

Arunraj Nair
fuente
0

Un ligero giro en las preguntas y respuestas anteriores: estoy ejecutando Debian Wheezy (7.0) en una computadora portátil System76 de 64 bits, ya había habilitado multiarch y la mayoría de las herramientas nativas de Android parecían funcionar bien ... hasta que intenté compilar Una aplicación. La compilación falló porque una de las utilidades de recursos necesitaba libz.so.1 (32 bits).

apt-get install lib32z1

... me lo arregló.

kramer
fuente
0

Para usuarios de Arch:
Debes instalar los paquetes lib32-gcc-libs y lib32-ncurses que se encuentran en el repositorio de Multilib. (Que tienes que habilitar )

pacman -S lib32-gcc-libs  
pacman -S lib32-ncurses
Grrrben
fuente
1
"paquete no encontrado"
fungusanthrax