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.