Android SDK auf einem 64-Bit-Linux-Computer

97

Ist es möglich, mit dem Android SDK auf einem 64-Bit-Linux-Computer zu entwickeln. Die verfügbaren SDK-Downloads scheinen nur für 32-Bit-Versionen von Linux zu gelten.

dzhelil
quelle

Antworten:

42

Ja, so ist es. Sie müssen die ia32-Bibliotheken installieren. Lesen Sie den Abschnitt zur Fehlerbehebung bei Ubuntu Linux .

apt-get install ia32-libs
apt-get install sun-java6-jdk
Matt Huggins
quelle
5
ia32-libs würde nicht auf meinem Computer installiert. Siehe die Antwort von notz unten.
Matthew Gilliard
5
Dies ist nur für Ubuntu-Versionen geeignet, bevor Multiarch-Unterstützung eingeführt wurde. Der richtige Ansatz ist jetzt , die richtigen i386-Pakete zu installieren
Jacob
Es ist merkwürdig, dass die "richtige" Antwort nur für den Bruchteil der 64-Bit-Computer gilt, auf denen Ubuntu / Gnome ausgeführt wird. Die Fragmentierung von Linux legt nahe, dass die "richtige" Antwort eine allgemeinere oder eine Kombination aller folgenden teilweise korrekten Antworten ist. Ich für meinen Teil bevorzuge die allgemeinere Antwort, da es zu viele mögliche Variationen und Aktualisierungen gibt, um sicher zu sein, dass sie vollständig und nicht veraltet sind. Meine Stimme wäre für eine nette "Ja, es ist möglich. RTFM und installiere die 32-Bit / i386-Pakete.", Stil herstellerneutrale Antwort. Zu Ihrer Information - sie werden es nicht reparieren, weil sie wollen, dass wir stattdessen Android Studio verwenden.
Sinthia V
Kein Abschnitt zur Fehlerbehebung unter diesem Link mehr. Hier finden Sie die aktuellen Installationsanweisungen: developer.android.com/studio/install.html Wählen Sie oben rechts im Auswahlfeld der Plattform "Linux" aus.
Amotzg
182

Unter (K) Ubuntu benötigen Sie folgende 32-Bit-Pakete:

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

Zum Ausführen des Emulators benötigen Sie das zusätzliche Paket:

sudo apt-get install libsdl1.2debian:i386
notz
quelle
12
Ein großes Dankeschön für diese Antwort, Sie haben meinen Computer vor der Installation von ia32-libs (überall empfohlen) gerettet, was zusammen mit den von Ihnen erwähnten Paketen eine Reihe anderer nutzloser Abhängigkeiten mit sich bringt. Ihre Lösung funktionierte für meine Linux Mint 13.
pavel_kazlou
Stimmen Sie mit dem Kommentator oben überein, Ubuntu 12.04 64bit
Matthew Gilliard
4
Arbeitete für mein Ubuntu 12.10 64bit. Vielen Dank!
1
Ubuntu 13.04 64 Bit hat immer noch das gleiche Problem mit dem ADT SDK, und diese Lösung hat auch dort für mich funktioniert.
GrandOpener
2
Funktioniert auch für Ubuntu 14.04 64bit. Vielen Dank!
Langley
34

Android SDK erfordert:

  • Fedora 17 64bit mit Android SDK:

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

    sudo yum install glibc zlib libstdc++ ncurses-libs mesa-libGL-devel adb
MariuszS
quelle
1
danke für die fedora spezifischen info. Die offizielle Hilfe hat nur die Ubuntu-Pakete aufgelistet
gspatel
2
Als ich das zum ersten Mal versuchte, bekam ich "Fehler: Geschützte Multilib-Versionen: libstdc ++ - 4.7.2-2.fc17.i686! = Libstdc ++ - 4.7.0-5.fc17.x86_64". Behoben mit yum Upgrade libstdc ++
Pinoyyid
1
Die Befehlszeile für Fedora 17 funktioniert immer noch für Fedora 21
Sombriks
@MariuszS, in diesem zweiten Szenario können Sie klarstellen, was Sie unter "64-Bit-Android-SDK" verstehen. Ich verstehe, dass das Android SDK 32-Bit-Binärdateien hat, weshalb wir dieses Problem überhaupt haben.
Carlos Macasaet
Ich bin mir nicht sicher, aber wahrscheinlich vor einiger Zeit gibt es zwei Versionen (wahrscheinlich mit Eclipse 64bit gebündelt). Antwort aktualisiert
MariuszS
15

Für Debian Wheezy müssen Sie Multiarch aktivieren und dann die abhängigen Bibliotheken installieren, wie in den anderen Antworten aufgeführt oder von den Binärdateien aus dem Verzeichnis tools oder platform-tools benötigt:

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

Für weitere Bibliotheken suchen Sie mit ldd nach referenzierten .so-Dateien.

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

Installieren Sie also weiterhin libncurses5: i386 und libstdc ++ 6: i386, um ausgeführt werden zu können

Plattform-Tools $ ./adb 
Android Debug Bridge Version 1.0.31
...
Sebastianwagner
quelle
Danke @ user2255304! Das hat bei mir funktioniert. Versuchte Android Studio zu installieren und android-studio/sdk/tools/mksdcardwar eine 32-Bit-ausführbare Datei. Befolgen Sie die obigen Schritte und installieren Sie libc6:i386und libstdc++6:i386. Die Binärdatei funktioniert jetzt einwandfrei.
Rajkumar S
9

Für Ubuntu 13.1 ist ia32-libs nicht mehr verfügbar. Sie können also Folgendes ausprobieren:

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6
user1079877
quelle
Diese Paketnamen funktionieren auch für Ubuntu 14.04. Dies scheint mir der "richtige" Ansatz zu sein, da diese Pakete aus dem amd64-Architektur-Repo stammen. Der frühere Kommentar zur Installation von: 386-Paketen mischt Architekturpakete, was riskant erscheint.
Don Park
@ DonPark Nein, es ist nicht riskant. Es heißt Multiarch.
Léo Lam
5

Unter CentOS 6.2 funktionierte es mit folgenden Funktionen:

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

Khagler
quelle
3
Funktioniert auch unter CentOS 7!
Philippe David
4

Für diejenigen, die Slackware verwenden, klicken Sie hier.

Ich habe es mit Strom versucht und es funktioniert.

Kurz gesagt, Sie müssen die 32-Bit-Unterstützung aktivieren, indem Sie Multilib-Pakete installieren.

Schritte:

1) Laden Sie das Paket herunter:

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

2) Pakete installieren:

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

3) Installieren Sie Kompatibilitätspakete:

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

Starten Sie das System neu und voila.

Milan Krstic
quelle
1

Für openSUSE können Sie das 32-Bit-Musterpaket installieren

su zypper install -t pattern 32bit

Steffen Christensen
quelle
1

Unter Ubuntu 13.10

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

Venky
quelle
0

Sie können SDK selbst erstellen. Ich werde versuchen. Die 32-Bit-Version ist sehr langsam.

Imcaptor
quelle
0

Voraussetzung: Die 32-Bit-Version des Android SDK ist installiert

Auf meinem 64-Bit-Betriebssystem Ubuntu 12 musste ich keines der in den vorherigen Kommentaren genannten Pakete installieren. Installieren Sie Folgendes mit Android SDK Manager-
Unter Tools:
Android SDK Tools
Android SDK Platform-tools
Latest Android SDK Build-tools

Unter der neuesten Android-API (in meinem Fall Android 4.3 (API 18)):
SDK Platform
ARM EABI v7a System Image

Unter Extras:
Android Support Library

Warnung: Ich hatte zuvor versucht, das ia32-libsPaket zu verwenden. Es wurde erfolgreich installiert und ich konnte meine Android-Apps ausführen. Wenn ich den Computer jedoch neu starten würde, würde er niemals booten. Daher empfehle ich, das ia32-libsPaket nicht zu installieren . Wenn es für dich funktioniert hat, dann großartig. Vielleicht war es damals ein Problem, das auf meinen PC beschränkt war.

Arunraj Nair
quelle
0

Eine kleine Wendung in den obigen Fragen und Antworten: Ich verwende Debian Wheezy (7.0) auf einem 64-Bit-System76-Laptop, hatte Multiarch bereits aktiviert und die meisten nativen Android-Tools schienen einwandfrei zu funktionieren ... bis ich versuchte, sie zu erstellen eine App. Der Build ist fehlgeschlagen, weil eines der Ressourcen-Dienstprogramme (ein 32-Bit) libz.so.1 benötigt.

apt-get install lib32z1

... hat es für mich behoben.

kramer
quelle
0

Für AWS Linux habe ich die Lösung im alten Beitrag des AWS-Forums gefunden .

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

Lee Han Kyeol
quelle
0

Für Arch-Benutzer:
Sie müssen die Pakete lib32-gcc-libs und lib32-ncurses installieren, die sich im Multilib-Repository befinden. (Was du aktivieren musst )

pacman -S lib32-gcc-libs  
pacman -S lib32-ncurses
Grrrben
quelle
1
"Paket nicht gefunden"
fungusanthrax