Cómo resolver: "Error al empujar la selección: sin memoria"

11

I Crear un artículo en el desbordamiento de pila . Pero cuando encontré este sitio, decidí hacer la misma pregunta aquí, porque todavía necesito su ayuda.

He realizado los siguientes pasos:

  1. Lanzar Eclipse
  2. Vaya a: Ventana -> Abrir perspectiva -> Otro ...
  3. Seleccione DDMS desde el diálogo abierto
  4. Seleccione la pestaña " Explorador de archivos ".
  5. Presione " Insertar un archivo en el dispositivo " y seleccione la biblioteca que deseo insertar.

    Error al enviar la selección: sistema de archivos de solo lectura

  6. Minimice todas las ventanas abiertas y abra la línea de comando
  7. Escriba: cd C: \ android \ android-sdk-windows \ platform-tools enter
  8. Escribir: abd remontar enter

    Verá el remontaje exitoso

  9. Maximice Eclipse e intente el paso 5.

    Error al presionar la selección: Sin memoria

¡Aparece un error! Qué hacer para resolver este problema ... Por favor, ayuda.

ADICIONAL

1) Cuando escribo 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) Shel Prompt comienza con: #

ViTo Brothers Apoyan
fuente
2
Las preguntas de desarrollo se consideran fuera de tema aquí de acuerdo con nuestras preguntas frecuentes .
newuser
Leí la palabra "Eclipse", así que voté para cerrar, pero ahora que leí el resto de la publicación y la publicación vinculada, estoy empezando a pensar que este es un buen ejemplo de preguntas que obtienes al desarrollar una aplicación que No son realmente una cuestión de desarrollo. No puedo retractar mi voto cerrado, pero puedo advertir a otras personas que no emitan un voto cercano tan rápido.
Lie Ryan
Estoy de acuerdo con @Lie en que esta es un área gris. Yo digo que esto debería permanecer abierto por ahora.
cerveza
@ViTo Brothers Apoyan: tengo dos preguntas 1) ¿Qué resultado tiene cuando lo hace adb shell mount(esto le dará todos los sistemas de archivos montados en el dispositivo y sus opciones de montaje)? 2) cuando lo hace adb shell, ¿el indicador de shell comienza con #(que indica que es root) o $(que indica que no es root)?
Lie Ryan
también etiquetó esta pregunta con android-x86, android-x86 ! = emulador de Android que se ejecuta en la máquina host x86. ¿Estás usando Android-x86 o solo el emulador normal?
Lie Ryan

Respuestas:

12

Inicie el emulador desde la línea de comandos para que pueda especificar un /systemtamaño de partición utilizando la -partition-size <MB>opción. Por ejemplo, lo uso para iniciar un emulador con Android 1.6 con una /systempartición de 512 MB:

emulator -avd Donut -partition-size 512

... donde "Donut" es el nombre que le haya dado a su AVD (puede verificarlo en el administrador de AVD de Eclipse si lo necesita). El emulatorbinario debe estar en su tools/directorio dentro de la instalación de su SDK, que para usted parece estar C:\android\android-sdk-windows\tools, así que asegúrese de cdingresar primero en ese directorio (o agréguelo a su sistema %Path%).

Eclipse puede no recoger el emulador de inmediato, o puede reconocerlo y luego desconectar la conexión. Si ocurre cualquiera de estos, haga clic en el menú Ver en la pestaña Dispositivos (la pequeña flecha al lado del botón minimizar) y seleccione "Restablecer adb" para recuperar la conexión.

Una vez que aparezca en sus dispositivos, haga lo que intentaba hacer antes. Ejecute adb remountpara obtener la /systempartición en modo de lectura y escritura, luego use Eclipse para insertar el archivo donde desee. Lo probé con un par de archivos aleatorios hace un minuto y pude empujarlos /system/xbinsin ningún problema.

Como referencia, aquí está el tamaño de la partición y el uso de /systemmi emulador Donut cuando especifico una partición de 512 MB:

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

Pero así es como se ve si inicio sin especificar un tamaño:

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

Además, puede establecer opciones de línea de comandos en la configuración de ejecución de su aplicación a través de Eclipse si lo desea. Entra en tu perspectiva de Java, luego selecciona Run->Run Configurationsde la barra de menú. Seleccione su aplicación en el panel izquierdo y luego seleccione la pestaña "Destino". En la parte inferior hay un cuadro de texto con la etiqueta "Opciones adicionales de la línea de comandos del emulador", y puede agregarlo -partition-size <MBs>a ese cuadro de texto para que el emulador que se inicie cuando ejecute su aplicación tenga una /systempartición más grande .

Nota: es posible que deba agregar también -no-snapstorageu otras opciones, para deshabilitar la carga de la instantánea existente, en la línea de comando. No funcionó sin él para mí.

eldarerathis
fuente
Muchas gracias !!! ¡Solucionas mi problema! muchas gracias !!!!!!!
ViTo Brothers Apoyan
0

La manera fácil: reinicie su teléfono en modo Recuperación, que monte el Sistema. Ahora puede empujar su archivo sin problemas.

Joop
fuente
¿Supongo que has perdido la línea /dev/block/mtdblock0 /system yaffs2 rw 0 0en la pregunta? Entonces, ¿qué debería cambiar cuando lo montas desde la recuperación? Completo está lleno, no gana espacio adicional en un sistema de archivos completo montándolo "desde otro lugar".
Izzy
-2

Cómo resolver: "Error al empujar la selección: sin memoria"

Mientras crea un nuevo dispositivo virtual Android (AVD) ... en la pestaña TARJETA SD, escriba algún valor (100) en MB.

¡Realmente, funciona para mí!

Pandiano
fuente
1
Esto no es correcto. Crear una tarjeta SD virtual no lo ayudará a insertar archivos en la /systempartición como se hace la pregunta. Son áreas de almacenamiento completamente no relacionadas.
eldarerathis