Android SDK su una macchina Linux a 64 bit


97

È possibile sviluppare utilizzando l'SDK Android su una macchina Linux a 64 bit. I download dell'SDK disponibili sembrano essere solo per le versioni a 32 bit di Linux.

Risposte:


42

Sì. È necessario installare le librerie ia32. Consulta la sezione relativa alla risoluzione dei problemi di Ubuntu Linux .

apt-get install ia32-libs
apt-get install sun-java6-jdk

5
ia32-libs non si installava sulla mia macchina. Vedi la risposta di notz di seguito.
Matthew Gilliard

5
Questo è appropriato solo per le versioni di Ubuntu prima che portassero il supporto Multiarch. L'approccio corretto è ora installare i pacchetti i386 corretti
Jacob

Ironico che la risposta "corretta" sia corretta solo per quella frazione di macchine a 64 bit che eseguono Ubuntu / Gnome. La frammentazione di Linux suggerisce che la risposta "corretta" è più generale o una combinazione di tutte le seguenti risposte parzialmente corrette. Io per primo preferisco la risposta più generalizzata, poiché ci sono troppe possibili variazioni e aggiornamenti per essere sicuri della completezza e della non obsolescenza. Il mio voto sarebbe per un simpatico "Sì, è possibile. RTFM e installa i pacchetti a 32 bit / i386.", Risposta indipendente dal produttore. Cordiali saluti, non lo risolveranno perché vogliono che usiamo invece Android Studio.
Sinthia V

Nessuna sezione di risoluzione dei problemi su questo collegamento più, questo va alle istruzioni di installazione correnti: developer.android.com/studio/install.html selezionare "linux" nella casella di selezione della piattaforma in alto a destra.
amotzg

182

Su (K) Ubuntu sono necessari i seguenti pacchetti a 32 bit:

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

per eseguire l'emulatore è necessario quel pacchetto aggiuntivo:

sudo apt-get install libsdl1.2debian:i386

12
Un grande GRAZIE per questa risposta, hai salvato il mio computer dall'installazione di ia32-libs (consigliato ovunque), che insieme ai pacchetti che hai citato porta un carro di altre dipendenze inutili. La tua soluzione ha funzionato per il mio Linux Mint 13.
pavel_kazlou

D'accordo con il commentatore sopra, ubuntu 12.04 64bit
Matthew Gilliard

4
Ha funzionato per il mio Ubuntu 12.10 64 bit. Grazie mille!

1
Ubuntu 13.04 64 bit ha ancora lo stesso problema con ADT SDK e questa soluzione ha funzionato anche per me lì.
GrandOpener

2
Funziona anche con Ubuntu 14.04 a 64 bit. Molte grazie!
Langley

34

Android SDK richiede:

  • Fedora 17 64 bit con Android SDK:

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

    sudo yum install glibc zlib libstdc++ ncurses-libs mesa-libGL-devel adb

1
grazie per le informazioni specifiche su fedora. la guida ufficiale ha solo i pacchetti ubuntu elencati
gspatel

2
Quando l'ho provato per la prima volta ho ricevuto "Errore: versioni multilib protette: libstdc ++ - 4.7.2-2.fc17.i686! = Libstdc ++ - 4.7.0-5.fc17.x86_64". Risolto con yum upgrade libstdc ++
pinoyyid

1
la riga di comando utilizzata per fedora 17 funziona ancora per fedora 21
Sombriks

@MariuszS, in quel secondo scenario, puoi chiarire cosa intendi per "SDK Android a 64 bit". La mia comprensione è che l'SDK Android ha binari a 32 bit, motivo per cui abbiamo questo problema in primo luogo.
Carlos Macasaet

Non ne sono sicuro, ma probabilmente qualche tempo fa ci sono due versioni (in bundle con eclipse 64bit probabilmente). Risposta aggiornata
MariuszS

15

Per Debian Wheezy devi abilitare il multiarch e quindi installare le librerie dipendenti come elencato nelle altre risposte o come richiesto dai binari dalla directory tools o platform-tools:

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

Per ulteriori librerie controllare con ldd per i file .so referenziati.

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

Quindi continua a installare libncurses5: i386 e libstdc ++ 6: i386 per poter eseguire

platform-tools $ ./adb 
Android Debug Bridge versione 1.0.31
...

Grazie @ user2255304! Questo ha funzionato per me. Stavo cercando di installare Android Studio ed android-studio/sdk/tools/mksdcardera un eseguibile a 32 bit. Passaggi seguiti sopra e installati libc6:i386e libstdc++6:i386. Il binario ora funziona correttamente.
Rajkumar S

9

Per Ubuntu 13.1 ia32-libs non è più disponibile. Quindi, puoi provare questo:

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6

Questi nomi di pacchetti funzionano anche per Ubuntu 14.04. Questo mi sembra essere l'approccio "corretto" perché questi pacchetti provengono dal repository dell'architettura amd64. Il commento precedente suggerisce di installare: 386 pacchetti mescola pacchetti di architettura che sembrano rischiosi.
Don Park

@DonPark No, non è rischioso. Si chiama multiarch.
Léo Lam

5

Su CentOS 6.2 ho funzionato con quanto segue:

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


3
Funziona anche su CentOS 7!
Philippe David


4

Per coloro che usano Slackware clicca qui.

L'ho provato con la corrente e funziona.

In breve, è necessario abilitare il supporto a 32 bit installando pacchetti multilib.

Passaggi:

1) Scarica il pacchetto:

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

2) installa i pacchetti:

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

3) installa i pacchetti di compatibilità:

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

Riavvia il sistema e voilà.



1

Su Ubuntu 13.10

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0


0

Puoi costruire sdk da solo. Cercherò. La versione a 32 bit è molto lenta.


0

Presunzione: è installata la versione Android SDK a 32 bit

Sul mio sistema operativo Ubuntu 12 a 64 bit, non ho dovuto installare nessuno dei pacchetti menzionati nei commenti precedenti. Installa quanto segue utilizzando Android SDK Manager-
Sotto Tools:
Android SDK Tools
Android SDK Platform-tools
Latest Android SDK Build-tools

Con l'ultima API Android (nel mio caso Android 4.3 (API 18)):
SDK Platform
ARM EABI v7a System Image

Sotto Extras:
Android Support Library

Avviso: in precedenza avevo provato a utilizzare il ia32-libspacchetto. È stato installato correttamente e sono stato in grado di eseguire le mie app Android. Tuttavia, se avessi riavviato la macchina, non si sarebbe mai avviata. Pertanto, suggerisco di astenersi dall'installare il ia32-libspacchetto. Se ha funzionato per te, allora fantastico. Forse allora era un problema limitato al mio PC.


0

Una leggera modifica alle precedenti domande e risposte: sto eseguendo Debian Wheezy (7.0) su un laptop System76 a 64 bit, avevo già abilitato il multiarch e la maggior parte degli strumenti Android nativi sembrava funzionare bene ... finché non ho provato a compilare una app. La compilazione non è riuscita perché una delle utilità per le risorse necessarie (a 32 bit) libz.so.1.

apt-get install lib32z1

... risolto per me.



0

Per gli utenti di Arch:
è necessario installare i pacchetti lib32-gcc-libs e lib32-ncurses che si trovano nel repository Multilib. (Che devi abilitare )

pacman -S lib32-gcc-libs  
pacman -S lib32-ncurses

1
"pacchetto non trovato"
fungusanthrax
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.