Como resolver: "Falha ao enviar seleção: falta de memória"

11

Crie um artigo no estouro de pilha . Mas, como encontrei este site, decido fazer a mesma pergunta aqui, porque ainda preciso da sua ajuda.

Eu fiz as seguintes etapas:

  1. Iniciar o Eclipse
  2. Vá para: Janela -> Abrir perspectiva -> Outro ...
  3. Selecione DDMS na caixa de diálogo aberta
  4. Selecione a guia " Explorador de arquivos ".
  5. Pressione " Enviar um arquivo para o dispositivo " e selecione a biblioteca que desejo enviar.

    Falha ao enviar seleção: sistema de arquivos somente leitura

  6. Minimize todas as janelas abertas e abra a Linha de Comando
  7. Escreva: cd C: \ android \ android-sdk-windows \ platform-tools enter
  8. Escreva: abd remount enter

    Você verá remontar com sucesso

  9. Maximize o Eclipse e tente a etapa 5.

    Falha ao enviar seleção: falta de memória

Erro aparece! O que fazer para resolver este problema ... Por favor, ajude.

ADICIONADO

1) Quando escrevo ADB SHELL MOUNT:

rootfs / rootfs ro 0 0 
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0 
none /acct cgroup rw,cpuacct 0 0 
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0 
tmpfs /mnt/obb tmpfs rw,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 rw 0 0 
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 
/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0

2) O prompt do Shel começa com: #

ViTo Brothers Apoyan
fonte
2
As questões de desenvolvimento são consideradas fora de tópico aqui, de acordo com nossas Perguntas frequentes .
newuser
Li a palavra "Eclipse" e votei para fechar, mas agora que li o resto da postagem e a postagem vinculada, estou começando a pensar que este é um bom exemplo de perguntas que você recebe ao desenvolver um aplicativo que não são realmente questões de desenvolvimento. Não posso retirar o meu voto de proximidade, mas posso advertir outras pessoas a não votar tão rapidamente.
Lie Ryan
Concordo com @Lie que esta é uma área cinzenta. Eu digo que isso deve ficar aberto por enquanto.
ale
@ ViTo Brothers Apoyan: Eu tenho duas perguntas 1) Qual saída você possui quando faz adb shell mountisso (isso fornecerá todos os sistemas de arquivos montados no dispositivo e suas opções de montagem)? 2) quando você faz adb shell, o prompt do shell começa com #(o que indica que você é root) ou $(o que indica que você não é root)?
Lie Ryan
você também marcou esta pergunta com android-x86, android-x86 ! = emulador android rodando na máquina host x86. Você está realmente usando o Android-x86 ou apenas o emulador regular?
Lie Ryan

Respostas:

12

Inicie o emulador na linha de comando para poder especificar um /systemtamanho de partição usando a -partition-size <MB>opção Por exemplo, eu uso isso para iniciar um emulador executando o Android 1.6 com uma /systempartição de 512 MB:

emulator -avd Donut -partition-size 512

... onde "Donut" é o que você nomeou como AVD (você pode verificar o gerenciador AVD do Eclipse, se precisar). O emulatorbinário deve estar no seu tools/diretório dentro da instalação do SDK, o que para você parece ser C:\android\android-sdk-windows\tools, então, certifique-se de cdentrar primeiro nesse diretório (ou adicione-o ao sistema %Path%).

O Eclipse pode não pegar o emulador imediatamente ou pode reconhecê-lo e, em seguida, interromper a conexão. Se alguma dessas situações acontecer, clique no menu Exibir na guia Dispositivos (a pequena seta ao lado do botão minimizar) e selecione "Redefinir adb" para recuperar a conexão.

Depois que ele aparecer nos seus dispositivos, faça o que você estava tentando fazer anteriormente. Execute adb remountpara obter a /systempartição no modo de leitura e gravação e use o Eclipse para enviar o arquivo para onde quiser. Eu testei com alguns arquivos aleatórios um minuto atrás e fui capaz de enviá-los /system/xbinsem problemas.

Para referência, veja o tamanho e o uso da partição /systemno emulador Donut quando eu especificar uma partição de 512 MB:

> adb shell df
...
/system: 508416K total, 61332K used, 447084K available (block size 4096)
...

Mas aqui está como fica se eu iniciar sem especificar um tamanho:

> adb shell df
...
/system: 65536K total, 61204K used, 4332K available (block size 4096)
...

Além disso, você pode definir opções de linha de comando na configuração de execução do aplicativo via Eclipse, se desejar. Entre na sua perspectiva Java e selecione Run->Run Configurationsna barra de menus. Selecione seu aplicativo no painel esquerdo e escolha a guia "Destino". Na parte inferior, há uma caixa de texto chamada "Opções adicionais de linha de comando do emulador" e você pode adicionar -partition-size <MBs>a essa caixa de texto para que o emulador iniciado quando você executa o aplicativo tenha uma /systempartição maior .

Nota: Pode ser necessário adicionar também -no-snapstorageou outras opções para desativar o carregamento da captura instantânea existente na linha de comando. Não funcionou sem ele para mim.

eldarerathis
fonte
Muito obrigado jogo !!! Você resolve meu problema !!! Muito obrigado !!!!!!!
ViTo Brothers Apoyan
0

A maneira mais fácil: reinicie o telefone no modo de recuperação, depois monte o sistema. Agora você pode enviar seu arquivo sem problemas.

Joop
fonte
Eu suponho que você perdeu a linha /dev/block/mtdblock0 /system yaffs2 rw 0 0na pergunta? Então, o que deve mudar quando você o monta da recuperação? Cheio está cheio, você não ganha espaço adicional em um sistema de arquivos completo montando-o "de outro lugar".
Izzy
-2

Como resolver: "Falha ao enviar seleção: falta de memória"

Ao criar o novo dispositivo virtual android (AVD) .. na guia SD CARD, digite algum valor (100) em MB.

Realmente, funciona para mim !!

Pandian
fonte
1
Isso não está correto. Criar um cartão SD virtual não ajudará você a enviar arquivos para a /systempartição, conforme a pergunta. São áreas de armazenamento completamente independentes.
eldarerathis