Ubuntu - Errore: impossibile creare la scheda SD


84

Vedo molti post sulla scrittura sulla scheda SD, ma credo che il mio problema sia diverso. Non riesco a creare la scheda SD durante il processo di creazione di un AVD.

Inizialmente ho provato a utilizzare Android SDK e AVD Manager per farlo, selezionando
Nome : my_avd
Target : Android 2.2 -
Scheda SD API livello 8 : Dimensioni: 1024 MiB
Skin : Incorporato: Default (HVGA)
Hardware : Proprietà: LCD astratto Densità, valore: 160

Viene visualizzata una finestra con il messaggio:
"Risultato della creazione di AVD" my_avd ":
Errore: creazione della scheda SD non riuscita."

Ho provato a ripetere il processo dalla riga di comando, ricevendo un errore simile:

alex@alex-desktop:~$ android create avd -n my_avd -t 1 -c 1024M
Android 2.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Error: Failed to create the SD card.

Tentare di seguire le istruzioni per usare mksdcard è stato altrettanto improduttivo; Penso che la mia mancanza di base di esperienza con Linux possa causare un problema qui. Quando provo a usare mksdcard, segnala solo che non riesce a trovare il file o la directory. Lo strumento mksdcard è disponibile per l'uso in questo modo in Linux?

alex@alex-desktop:~$ mksdcard 1024M ./sdcard.iso
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory
alex@alex-desktop:~$ sudo android create avd -n my_avd -t 1 -c 1024M

Ho aggiunto la directory degli strumenti Android alla mia variabile PATH, ma sento che ovviamente mi manca qualcos'altro. Forse qualche tipo di diritto di accesso?

Anche il tentativo di eseguire il comando Android con sudo non sembra aiutare:

alex@alex-desktop:~/android-sdk-linux_x86/tools$ sudo ./android create avd -n my_avd -t 1 -c 1024M
Android 2.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Error: Failed to create the SD card.

Ho anche provato a installare Eclipse e il plug-in ADT e ad eseguire il manager da lì senza alcun risultato. Eventuali suggerimenti sarebbero molto apprezzati. Avviso avanzato che sono un po 'un utente Linux alle prime armi, quindi anche se sembra una cosa ovvia da controllare, avrei potuto comunque perderlo.


@Alex Pritchard: Probabilmente non hai bisogno di una scheda SD falsa 1024M. Prova invece 32M e vedi se hai più fortuna.
CommonsWare

@CommonsWare Ahimè, la scheda SD da 32M non riesce ancora a creare. :(
Alex Pritchard,

@Alex Pritchard: È piuttosto strano. Le immagini vengono create nella stessa directory del resto di AVD ( ~/.android/avd/whateveryoucalledit/), quindi non riesco a capire come creare un AVD ma non un AVD con una scheda SD.
CommonsWare

@CommonsWare Ho letto un po 'di più in giro e penso di aver trovato qualcosa. Sospetto che ci possa essere qualche problema perché sto usando l'installazione Linux a 64 bit e potrebbe essere necessario installare ia32-libs. Lo proverò quando tornerò a casa e vedrò se aiuta.
Alex Pritchard

@Alex Pritchard: Sì, credo che tu abbia bisogno di quelli. Sorpreso che funzioni senza di loro, in realtà. Ho dovuto fare alcune rotazioni per far funzionare Android sulla mia configurazione Ubuntu a 64 bit, anche se è stato abbastanza tempo fa da dimenticare i dettagli.
CommonsWare

Risposte:


101

Quindi ho trovato il problema. Stavo usando un'installazione Linux a 64 bit, che non aveva il pacchetto ia32-libs installato per impostazione predefinita. L'utilità mksdcard non verrà eseguita senza questo pacchetto. Dopo averlo installato, sono stato in grado di creare AVD senza problemi utilizzando AVD manager.


1
Grazie, ubuntu 12.04 x64, ha risolto il problema. Vorrei solo osservare che queste librerie ia32 sono circa 260
MB

43
Sì! Ho trovato la strada senza tutti quei 240 terribili pacchetti di dipendenze! Invece di ia32-libsinstallare libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386. Complimenti a questo ragazzo, che ha salvato il mio (e si spera altri) computer da tutta la spazzatura: stackoverflow.com/a/10473415/998772 PS Sto usando Linux Mint 13
pavel_kazlou

4
Su Fedora,dnf install glibc.i686 libstdc++.i686
Dominic Cleal

grazie. Uso Ubuntu 14.04 LTS amd e risolve il problema. Ho installato pacchetti separati come suggerito da @pavel_kazlou
Joao Polo

1
@nimrodm Sono continuamente sorpreso dall'attività su questo post (il mio post SO più popolare fino ad oggi, hah).
Alex Pritchard

80

Su Ubuntu 16.04 LTS x64, utilizzando Android Studio 2.1 (testato anche su 2.3.3), eseguito da un terminale:

sudo apt-get install lib32stdc++6

Ho installato manualmente l'SDK (senza Android Studio) e questo ha funzionato per me.
CTodea

1
Oltre a ciò, ho dovuto rinominare ~ / Android / Sdk / emulator / lib64 / libstdc ++ / libstdc ++. So.6 e libstdc ++. So.6.0.18 in qualcos'altro per far funzionare l'emulatore. Potevo farlo funzionare solo senza opengl duro. --------------- ./emulator @ Nexus_4_API_23 non è riuscito a creare getGLES2ExtensionString disegnabile: Impossibile creare GLES 2.x Pbuffer! Impossibile ottenere la stringa delle estensioni GLES 2.x! Impossibile inizializzare l'emulatore di framebuffer emulato: ERRORE: Impossibile inizializzare l'emulazione OpenglES, usa "-gpu off" per disabilitarlo.
Francisco Junior

1
Bingo. Ubuntu 17.04.
piratemurray

22

Ho avuto lo stesso errore come te e l'ho appena risolto, quindi forse può aiutarti (anche se non penso che il tuo errore sia causato dallo stesso problema come me).

Ho scoperto che tutti gli strumenti in ../tools non hanno il permesso di eseguire l'excute, quindi ho usato

chmod -R 777 ../tools

dalla riga di comando e finalmente funziona


1
Grazie per aver contribuito con una risposta. Stack Overflow fornisce la formattazione per migliorare la leggibilità della risposta. Puoi usare la formattazione del codice per identificare il comando della shell e distinguerlo dal tuo altro testo.
this.josh

Opere, ma questo si traduce in .txt, .xmlfile ecc che hanno permesso eseguibile ... sarebbe bello sapere i singoli file coinvolti
funkybro

10

Come altri hanno già scritto, il problema è che la tua distribuzione Linux è a 64 bit e, al momento, Android Virtual Device ( AVD ) necessita di x86 libreria per funzionare correttamente.

Qualcuno ha suggerito di installare ia32-libs . Tuttavia, in Ubuntu 14.04 LTS non troverai questa libreria. Ho risolto usando queste librerie alternative: lib32z1 , lib32ncurses5 , lib32bz2-1.0 e lib32stdc ++ .

sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++

3
L'unico di cui avevo bisogno era lib32stdc ++ 6.
Big McLargeHuge

6

Ho appena riscontrato lo stesso problema. NESSUNO degli strumenti SDK verrà eseguito su Ubuntu a 64 bit senza installare ia32-libs (ESEMPIO: sudo apt-get install ia32-libs).


5

In elementary OS e ubuntu, la soluzione era installare i seguenti pacchetti

sudo apt-get install lib32ncurses5 lib32z1
sudo apt-get install libgcc1:i386

Questo ha funzionato per me su Kubuntu 17.04. Ma libstdc ++ deve ancora essere rimosso.
Avamander

4
alex@alex-desktop:~$ mksdcard 1024M ./sdcard.iso
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory
alex@alex-desktop:~$ sudo android create avd -n my_avd -t 1 -c 1024M

Ho trovato questo problema e prima trovo un modo:

cd /home/alex/android-sdk-linux_x86/tools/

quindi scrivi questo:

sudo chmod 755 mksdcard
mksdcard 1024M ./sdcard.iso
sudo android create avd -n my_avd -t 1 -c 1024M

dovrebbe funzionare :)


4

Se stai usando Kali, Debian Jessie (o Ubuntu 13.10+), prova

sudo apt-get install lib32stdc ++ 6

invece delle ia32-libs menzionate sopra.


4
sudo apt-get install lib32stdc++6

Dopo questo potresti ottenere i seguenti errori

Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  49
  Current serial number in output stream:  48
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  49
  Current serial number in output stream:  48
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
emulator: WARNING: VM heap size set below hardware specified minimum of 228MB
X Error of failed request:  BadValue (integer parameter out of range for operation)
emulator: WARNING: Setting VM heap size to 384MB
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  33
  Current serial number in output stream:  34
QObject::~QObject: Timers cannot be stopped from another thread

Usa questi 3 comandi per risolverli

mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6{,.bak}
mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6.0.18{,.bak}
ln -s /usr/lib/libstdc++.so  ~/Android/Sdk/tools/lib64/libstdc++/**

3

Ho anche avuto questo problema e dopo aver installato il pacchetto i386 sono stato in grado di creare una scheda SD per il mio emulatore Android ho dovuto fare due passaggi

sudo apt-get update
sudo apt-get install ia32-libs

Al termine, sono stato in grado di creare un emulatore con una scheda SD collegata


2

Avevo un problema diverso: platform-tools era nel mio percorso ma tools no. Quindi, tutto ha funzionato tranne che l'immagine SDCard non è stata creata. Non c'era alcun avviso di questo quando ho creato l'avd in eclipse e il dispositivo virtuale è stato creato con una scheda SD molto piccola che causava costantemente l'errore di supporto non disponibile durante l'installazione dell'app.


1

Ho avuto un problema diverso utilizzando Ubuntu a 32 bit. Quando ho provato a eseguire mksdcard a mano, ho ricevuto un errore di file non trovato.

Il problema era open-jre / jdk. Ho installato Oracle Java e il problema è stato risolto. Sfortunatamente non puoi più installare Oracle Java tramite apt / synaptic e devi saltare alcuni cerchi extra:

https://github.com/flexiondotorg/oab-java6


1

Durante i test Debian, quando ho provato a eseguire ./tools/mksdcards, ho ricevuto l'errore:

error while loading shared libraries: libstdc++.so.6: 
cannot open shared object file: No such file or directory

L'installazione di lib32stdc ++ 6 risolve il problema ed è stato possibile creare il file avd.


0

MyOS è Oracle Unbreakable Linux 6 - per risolvere questo problema ho dovuto installare il pacchetto libstdc ++ - 4.4.6-3.el6.i686.


0

Dopo molte installazioni e senza ottenere alcun risultato, ho trovato questo e ha funzionato.

Ciò accade perché alcuni file eseguibili in sdk/toolsnon possono essere eseguiti. Vai alle cartelle Android Studio e Android SDK e rendi eseguibili tutte le directory ei file con questo comando:

chmod +x -R *

Mi irrita che 9 anni dopo questo problema si ripresenta ancora. Bei tempi Grazie per aver condiviso la tua esperienza.
Alex Pritchard

-1

Prova a spostare la cartella sdk di Android nella cartella home. Funziona.


-1

Ho avuto lo stesso problema. Dopo la risoluzione dei problemi, sono venuto a sapere che era perché il mio Windows è a 32 bit e la mia mksdcard è compatibile solo con 64 bit. Quindi ho appena copiato una mksdcard a 32 bit nella cartella degli strumenti e ho cancellato quella più vecchia. Ha risolto il mio problema.


-1

Per le persone che hanno affrontato lo stesso problema su Windows. Per me è stato perché lo strumento mksdcard.exe non è stato in grado di funzionare correttamente. Alcuni strumenti SDK come mksdcard.exe richiedono il runtime di Microsoft Visual C ++. Quindi vai alle proprietà del sistema e controlla il tipo di sistema:

inserisci qui la descrizione dell'immagine

Quindi, in base al tipo di sistema, (per me era x64) scarica / aggiorna l'ultimo Microsoft Visual C ++ Redistributable per Visual Studio 2019 dal link https://visualstudio.microsoft.com/downloads/

inserisci qui la descrizione dell'immagine

Dopo aver installato Microsoft Visual C ++, il mio problema è stato risolto. Sono stato in grado di creare AVD con successo.

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.