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.

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

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

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

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

¡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

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


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.


1

Para openSUSE puede instalar el paquete de patrones de 32 bits

su zypper install -t patrón de 32 bits


1

En Ubuntu 13.10

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0


0

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


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.


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



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

1
"paquete no encontrado"
fungusanthrax
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.