Ubuntu - Erro: Falha ao criar o cartão SD


84

Vejo muitas postagens sobre como gravar no cartão SD, mas acredito que meu problema seja diferente. Não consigo criar o cartão SD durante o processo de construção de um AVD.

Inicialmente tentei usar o Android SDK e o AVD Manager para fazer isso, selecionando
Nome : my_avd
Alvo : Android 2.2 - API Nível 8
Cartão SD : Tamanho: 1024 MiB
Skin : Integrado: Padrão (HVGA)
Hardware : Propriedade: LCD abstraído Densidade, valor: 160

Isso abre uma janela com a mensagem:
"Resultado da criação do AVD 'my_avd':
Erro: Falha ao criar o cartão SD."

Tentei repetir o processo na linha de comando, recebendo um erro semelhante:

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.

Tentar seguir as instruções para usar o mksdcard foi igualmente improdutivo; Acho que minha falta básica de experiência em Linux pode estar me causando um problema aqui. Quando tento usar o mksdcard, ele apenas informa que não consegue encontrar o arquivo ou diretório. A ferramenta mksdcard está disponível para uso dessa forma no 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

Eu adicionei o diretório de ferramentas do Android à minha variável PATH, mas sinto que obviamente há algo mais que estou perdendo. Talvez algum tipo de direito de acesso?

Tentar executar o comando android com sudo também não pareceu ajudar:

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.

Eu até tentei instalar o Eclipse e o plugin ADT e executar o gerenciador de lá sem sucesso. Qualquer dica seria muito apreciada. Aviso avançado de que sou um usuário novato do Linux, então, mesmo que pareça uma coisa óbvia e acéfala de verificar, eu ainda poderia ter perdido.


@Alex Pritchard: Você provavelmente não precisa de um cartão SD falso de 1024M. Tente 32M em vez disso e veja se você tem melhor sorte.
— CommonsWare,

@CommonsWare Infelizmente, o cartão SD de 32M ainda não consegue criar. :(
— Alex Pritchard,

@Alex Pritchard: Isso é muito estranho. As imagens são criadas no mesmo diretório que o resto do AVD ( ~/.android/avd/whateveryoucalledit/), então não consigo entender como você pode criar um AVD, mas não um AVD com um cartão SD.
— CommonsWare

@CommonsWare Tenho lido um pouco mais e acho que posso ter encontrado algo. Suspeito que pode haver algum problema porque estou usando a instalação do Linux de 64 bits e pode ser necessário instalar o ia32-libs. Vou tentar fazer isso quando voltar para casa e ver se ajuda.
— Alex Pritchard,

@Alex Pritchard: Sim, acredito que você precisa disso. Surpreso que funcione sem eles, na verdade. Tive que passar por alguns giros para fazer o Android rodar na minha configuração do Ubuntu de 64 bits, embora isso tenha sido há muito tempo que eu esqueci os detalhes.
— CommonsWare,

Respostas:


101

Então eu encontrei o problema. Eu estava usando uma instalação do Linux de 64 bits, que não tinha o pacote ia32-libs instalado por padrão. O utilitário mksdcard não será executado sem este pacote. Depois de instalá-lo, consegui construir o AVD sem problemas usando o gerenciador de AVD.


1
Obrigado, ubuntu 12.04 x64, resolveu o problema. Eu apenas observaria que essas ia32-libs têm aproximadamente
— 260 MB

43
Sim! Eu encontrei o caminho sem todos aqueles pacotes horríveis de 240 dependências! Em vez de ia32-libsinstalar libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386. Parabéns a esse cara, que salvou meu computador (e espero que outros) de todo o lixo: stackoverflow.com/a/10473415/998772 PS Estou usando o Linux Mint 13
— pavel_kazlou

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

obrigado. Eu uso Ubuntu 14.04 LTS amd e resolve o problema. Instalei pacotes separados como @pavel_kazlou sugerido
— João Polo

1
@nimrodm Estou continuamente surpreso com a atividade neste post (meu post de SO mais popular até agora, hah).
— Alex Pritchard

80

No Ubuntu 16.04 LTS x64, usando o Android Studio 2.1 (também testado no 2.3.3), execute a partir de um terminal:

sudo apt-get install lib32stdc++6

Instalei o SDK manualmente (sem Android Studio) e funcionou para mim.
— CTodea

1
Além disso, tive que renomear ~ / Android / Sdk / emulator / lib64 / libstdc ++ / libstdc ++. So.6 e libstdc ++. So.6.0.18 para algo diferente para fazer o emulador funcionar. Só consegui fazê-lo funcionar sem abrir força. --------------- ./emulator @ Nexus_4_API_23 falhou ao criar drawGLES2ExtensionString: Não foi possível criar GLES 2.x Pbuffer! Falha ao obter a string de extensões GLES 2.x! Não foi possível inicializar o emulador de framebuffer emulado: ERRO: Não foi possível inicializar a emulação OpenglES, use '-gpu off' para desativá-lo.
— Francisco Junior

1
Bingo. Ubuntu 17.04.
— piratemurray

22

Eu tive o mesmo erro que você e acabei de resolvê-lo, então talvez ele possa ajudá-lo (embora eu não ache que seu erro seja causado pelo mesmo problema que eu).

Descobri que todas as ferramentas em ../tools não têm permissão para funcionar, então usei

chmod -R 777 ../tools

da linha de comando e finalmente funciona


1
Obrigado por contribuir com uma resposta. O Stack Overflow fornece formatação para melhorar a legibilidade de sua resposta. Você pode usar a formatação de código para identificar o comando shell e diferenciá-lo de seu outro texto.
— this.josh

Obras, mas isso resulta em .txt, .xmlarquivos etc que têm permissão de execução ... seria bom saber os arquivos individuais envolvidos
— funkybro

10

Como outros já escreveram, o problema é que sua distribuição Linux é de 64 bits e, no momento, o Android Virtual Device ( AVD ) precisa da biblioteca x86 para funcionar corretamente.

Alguém sugeriu instalar ia32-libs . No entanto, no Ubuntu 14.04 LTS você não encontrará esta biblioteca. Resolvi usando essas libs alternativas: lib32z1 , lib32ncurses5 , lib32bz2-1.0 e lib32stdc ++ .

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

3
O único que eu precisava era lib32stdc ++ 6.
— Big McLargeHuge

6

Acabei de encontrar o mesmo problema. NENHUMA das ferramentas SDK será executada no Ubuntu de 64 bits sem instalar ia32-libs (EXEMPLO: sudo apt-get install ia32-libs).


5

No sistema operacional elementar e no Ubuntu, a solução foi instalar os seguintes pacotes

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

Isso funcionou para mim no Kubuntu 17.04. Mas libstdc ++ ainda deve ser removido.
— 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

Eu encontrei este problema e primeiro encontro uma maneira:

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

então escreva isto:

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

deve funcionar :)


4

Se você estiver usando Kali, Debian Jessie (ou Ubuntu 13.10+), tente

sudo apt-get install lib32stdc ++ 6

em vez das ia32-libs mencionadas acima.


4
sudo apt-get install lib32stdc++6

Depois disso, você pode obter os seguintes erros

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

Use estes 3 comandos para resolver aqueles

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

Também tive esse problema e depois de instalar o pacote i386 fui capaz de criar um cartão SD para meu emulador de Android, tive que fazer duas etapas

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

Depois que isso foi concluído, fui capaz de criar um emulador com um cartão SD anexado


2

Eu tinha um problema diferente: as ferramentas da plataforma estavam no meu caminho, mas as ferramentas não. Então, tudo funcionou, exceto que a imagem SDCard não foi criada. Não houve aviso disso quando criei o avd no eclipse e o dispositivo virtual foi criado com um cartão SD realmente pequeno, fazendo com que ele gerasse constantemente o erro de mídia não disponível na instalação do aplicativo.


1

Tive um problema diferente ao usar o Ubuntu de 32 bits. Quando tentei executar o mksdcard manualmente, recebi um erro de arquivo não encontrado.

O problema era open-jre / jdk. Instalei o oracle java e o problema foi corrigido. Infelizmente, você não pode mais instalar o oracle java por meio do apt / synaptic e precisa passar por alguns obstáculos extras:

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


1

No teste debian, quando tentei executar ./tools/mksdcards, recebi o erro:

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

Instalar lib32stdc ++ 6 resolve o problema e foi possível criar o avd.


0

MyOS is Oracle Unbreakable Linux 6 - para resolver este problema tive que instalar o pacote libstdc ++ - 4.4.6-3.el6.i686.


0

Depois de muito instalar e não conseguir nenhum resultado achei isso e funcionou.

Isso acontece porque alguns arquivos executáveis ​​em sdk/toolsnão podem ser executados. Vá para as pastas do Android Studio e do Android SDK e torne todos os diretórios e arquivos executáveis ​​por este comando:

chmod +x -R *

Racha-me que 9 anos depois este problema ainda surge. Bons tempos. Obrigado por compartilhar sua experiência.
— Alex Pritchard

-1

Tente mover a pasta sdk do Android para a pasta inicial. Funciona.


-1

Eu tive o mesmo problema. Depois de solucionar o problema, descobri que era porque meu Windows é de 32 bits e meu mksdcard é compatível apenas com 64 bits. Então, copiei um mksdcard de 32 bits para a pasta de ferramentas e excluí o mais antigo. Isso resolveu meu problema.


-1

Para as pessoas que enfrentaram o mesmo problema no Windows. Para mim, foi porque a ferramenta mksdcard.exe não conseguiu funcionar com êxito. Algumas ferramentas do SDK, como mksdcard.exe, requerem o tempo de execução do Microsoft Visual C ++. Portanto, vá para as propriedades do sistema e verifique o tipo de sistema:

insira a descrição da imagem aqui

Então, com base no seu tipo de sistema, (para mim era x64) baixe / atualize o Microsoft Visual C ++ Redistributable para Visual Studio 2019 mais recente no link https://visualstudio.microsoft.com/downloads/

insira a descrição da imagem aqui

Depois de instalar o Microsoft Visual C ++, meu problema foi corrigido. Consegui criar o AVD com sucesso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.