SDK Android sur une machine Linux 64 bits

97

Est-il possible de développer à l'aide du SDK Android sur une machine Linux 64 bits. Les téléchargements de SDK disponibles semblent concerner uniquement les versions 32 bits de Linux.

DR
la source

Réponses:

42

Oui, ça l'est. Vous devez installer les bibliothèques ia32. Consultez la section de dépannage Ubuntu Linux .

apt-get install ia32-libs
apt-get install sun-java6-jdk
Matt Huggins
la source
5
ia32-libs ne s'installerait pas sur ma machine. Voir la réponse de notz ci-dessous.
Matthew Gilliard
5
Cela n'est approprié que pour les versions d'Ubuntu avant qu'elles n'introduisent le support Multiarch. La bonne approche consiste maintenant à installer les bons packages i386
Jacob
Ironique que la réponse «correcte» ne soit correcte que pour cette fraction de machines 64 bits exécutant Ubuntu / Gnome. La fragmentation de Linux suggère que la réponse «correcte» est une réponse plus générale ou une combinaison de toutes les réponses partiellement correctes suivantes. Pour ma part, je préfère la réponse plus généralisée, car il y a trop de variations et de mises à jour possibles pour être sûr de l'exhaustivité et de la non-obsolescence. Mon vote serait pour une belle réponse "Oui, c'est possible. RTFM et installez les packages 32 bits / i386.", Style de réponse neutre. FYI - ils ne le répareront pas car ils veulent que nous utilisions Android Studio à la place.
Sinthia V
Aucune section de dépannage sur ce lien plus, cela va aux instructions d'installation actuelles: developer.android.com/studio/install.html sélectionnez 'linux' dans la boîte de sélection de la plate-forme en haut à droite.
amotzg
182

Sur (K) Ubuntu, vous avez besoin des packages 32 bits suivants:

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

pour exécuter l'émulateur, vous avez besoin de ce package supplémentaire:

sudo apt-get install libsdl1.2debian:i386
notz
la source
12
Un grand MERCI pour cette réponse, vous avez sauvé mon ordinateur de l'installation de ia32-libs (conseillé partout), qui avec les paquets que vous avez mentionnés apporte un wagon d'autres dépendances inutiles. Votre solution a fonctionné pour mon Linux Mint 13.
pavel_kazlou
D'accord avec le commentateur ci-dessus, ubuntu 12.04 64bit
Matthew Gilliard
4
A travaillé pour mon Ubuntu 12.10 64 bits. Merci beaucoup!
1
Ubuntu 13.04 64 bits a toujours le même problème avec le SDK ADT, et cette solution a également fonctionné pour moi là-bas.
GrandOpener
2
Fonctionne également pour Ubuntu 14.04 64 bits. Merci beaucoup!
Langley
34

Le SDK Android nécessite:

  • Fedora 17 64 bits avec Android SDK:

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

    sudo yum install glibc zlib libstdc++ ncurses-libs mesa-libGL-devel adb
MariuszS
la source
1
merci pour les informations spécifiques à fedora. l'aide officielle n'a que les paquets ubuntu répertoriés
gspatel
2
Quand j'ai essayé cela pour la première fois, j'ai eu "Erreur: versions multilib protégées: libstdc ++ - 4.7.2-2.fc17.i686! = Libstdc ++ - 4.7.0-5.fc17.x86_64". Correction avec la mise à niveau yum libstdc ++
pinoyyid
1
la ligne de commande utilisée pour fedora 17 fonctionne toujours pour fedora 21
Sombriks
@MariuszS, dans ce deuxième scénario, pouvez-vous clarifier ce que vous entendez par "SDK Android 64 bits". Je crois comprendre que le SDK Android a des binaires 32 bits, c'est pourquoi nous avons ce problème en premier lieu.
Carlos Macasaet
Je ne suis pas sûr, mais il y a probablement quelque temps, il y a deux versions (probablement fournies avec eclipse 64bit). Réponse mise à jour
MariuszS
15

Pour Debian Wheezy, vous devez activer multiarch , puis installer les bibliothèques dépendantes comme indiqué dans les autres réponses ou selon les besoins par les binaires du répertoire tools ou platform-tools:

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

Pour plus de bibliothèques, vérifiez avec ldd les fichiers .so référencés.

outils de plateforme $ ldd adb                       
    linux-gate.so.1 => (0xf77bb000)
    librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf779b000)
    libncurses.so.5 => introuvable
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7781000)
    libstdc ++. so.6 => introuvable
    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)

Continuez donc à installer libncurses5: i386 et libstdc ++ 6: i386 pour pouvoir fonctionner

outils de plateforme $ ./adb 
Pont de débogage Android version 1.0.31
...
Sébastianwagner
la source
Merci @ user2255304! Cela a fonctionné pour moi. J'essayais d'installer Android Studio et android-studio/sdk/tools/mksdcardétait un exécutable 32 bits. Suivez les étapes ci-dessus et installé libc6:i386et libstdc++6:i386. Le binaire fonctionne maintenant correctement.
Rajkumar S
9

Pour Ubuntu 13.1, ia32-libs n'est plus disponible. Alors, vous pouvez essayer celui-ci:

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6
user1079877
la source
Ces noms de paquet fonctionnent également pour Ubuntu 14.04. Cela me semble être l'approche «correcte» car ces packages proviennent du dépôt d'architecture amd64. Le commentaire précédent suggérant l'installation: 386 packages mélange des packages d'architecture ce qui semble risqué.
Don Park
@DonPark Non, ce n'est pas risqué. Cela s'appelle multiarch.
Léo Lam
5

Sur CentOS 6.2, je l'ai fait fonctionner avec les éléments suivants:

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

Khagler
la source
3
Fonctionne aussi sur CentOS 7!
Philippe David
4

Pour ceux qui utilisent Slackware, cliquez ici.

Je l'ai essayé avec du courant et ça marche.

En bref, vous devez activer la prise en charge 32 bits en installant des packages multilib.

Pas:

1) Téléchargez le package:

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

2) installer les packages:

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

3) installer les packages de compatibilité:

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

Redémarrez le système et le tour est joué.

Milan Krstic
la source
1

Pour openSUSE, vous pouvez installer le package de modèles 32 bits

su zypper install -t modèle 32 bits

Steffen Christensen
la source
1

Sur Ubuntu 13.10

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

Venky
la source
0

Vous pouvez créer vous-même le SDK. Je vais essayer. La version 32 bits est très lente.

imcaptor
la source
0

Présomption: la version 32 bits du SDK Android est installée

Sur mon OS Ubuntu 12 64 bits, je n'ai pas eu à installer l'un des packages mentionnés dans les commentaires précédents. Installez ce qui suit en utilisant Android SDK Manager-
Sous Tools:
Android SDK Tools
Android SDK Platform-tools
Latest Android SDK Build-tools

Sous la dernière API Android (dans mon cas, Android 4.3 (API 18)):
SDK Platform
ARM EABI v7a System Image

Sous Extras:
Android Support Library

Attention, j'avais déjà essayé d'utiliser le ia32-libspackage. Il s'est installé avec succès et j'ai pu exécuter mes applications Android. Cependant, si je redémarrais la machine, elle ne démarrerait jamais. Par conséquent, je suggère de ne pas installer le ia32-libspackage. Si cela a fonctionné pour vous, tant mieux. C'était peut-être un problème limité à mon PC à l'époque.

Arunraj Nair
la source
0

Une légère torsion sur les questions et réponses ci-dessus: j'exécute Debian Wheezy (7.0) sur un ordinateur portable System76 64 bits, j'avais déjà activé multiarch et la plupart des outils Android natifs semblaient bien fonctionner ... jusqu'à ce que j'essaye de construire Une application. La compilation a échoué car l'un des utilitaires de ressources nécessitait (un 32 bits) libz.so.1.

apt-get installer lib32z1

... réparé pour moi.

Kramer
la source
0

Pour AWS Linux, j'ai trouvé la solution dans l'ancien article du forum AWS .

sudo yum install mesa-libGL.i686 libXrender.i686 libSM.i686 freetype.i686 libstdc++.i686

Lee Han Kyeol
la source
0

Pour les utilisateurs d'Arch:
Vous devez installer les packages lib32-gcc-libs et lib32-ncurses qui se trouvent dans le référentiel Multilib. (Que vous devez activer )

pacman -S lib32-gcc-libs  
pacman -S lib32-ncurses
Grrrben
la source
1
"package not found"
fungusanthrax