Come risolvere: "Impossibile selezionare la selezione: memoria insufficiente"


11

Creo un articolo in Stack Overflow . Ma quando ho trovato questo sito, ho deciso di porre la stessa domanda qui, perché ho ancora bisogno del tuo aiuto.

Ho fatto i seguenti passi:

  1. Avvia Eclipse
  2. Vai a: Finestra -> Apri prospettiva -> Altro ...
  3. Seleziona DDMS dalla finestra di dialogo aperta
  4. Seleziona la scheda " Esplora file ".
  5. Premi " Invia un file sul dispositivo " e seleziona la libreria che desidero inviare.

    Selezione push non riuscita: file system di sola lettura

  6. Ridurre a icona tutte le finestre aperte e aprire la riga di comando
  7. Scrivi: cd C: \ android \ android-sdk-windows \ platform-tools enter
  8. Scrivi: abd remount enter

    Vedrai il rimontaggio con successo

  9. Massimizza Eclipse e prova il passaggio 5.

    Impossibile selezionare la selezione: memoria esaurita

Viene visualizzato l'errore! Cosa fare per risolvere questo problema ... Per favore aiutatemi.

AGGIUNTO

1) Quando scrivo 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) Il prompt Shel inizia con: #


2
Le domande di sviluppo sono considerate fuori tema qui in base alle nostre FAQ .
nuovoutente

Ho letto la parola "Eclipse", quindi ho votato questo per chiudere, ma ora che ho letto il resto del post e il post collegato, sto iniziando a pensare che questo è un buon esempio di domande che si presentano durante lo sviluppo di un'applicazione che non sono davvero domande di sviluppo. Non posso ritirare il mio voto ravvicinato, ma posso avvertire le altre persone di non esprimere un voto ravvicinato così in fretta.
Lie Ryan,

Sono d'accordo con @Lie che questa è un'area grigia. Dico che per ora dovrebbe rimanere aperto.
Ale

@ViTo Brothers Apoyan: ho due domande 1) Quale output hai quando lo fai adb shell mount(questo ti darà tutti i filesystem montati nel dispositivo e le loro opzioni di mount)? 2) quando lo fai adb shell, il prompt della shell inizia con #(che indica che sei root) o $(che indica che non sei root)?
Lie Ryan,

inoltre hai taggato questa domanda con android-x86, android-x86 ! = emulatore android in esecuzione su una macchina host x86. Stai effettivamente utilizzando Android-x86 o solo l'emulatore normale?
Lie Ryan,

Risposte:


12

Avviare l'emulatore dalla riga di comando in modo da poter specificare una /systemdimensione della partizione usando l' -partition-size <MB>opzione. Ad esempio, lo uso per avviare un emulatore con Android 1.6 con una /systempartizione di 512 MB:

emulator -avd Donut -partition-size 512

... dove "Ciambella" è come hai chiamato il tuo AVD (puoi controllare nel gestore AVD di Eclipse se necessario). Il file emulatorbinario dovrebbe trovarsi nella tua tools/directory all'interno dell'installazione dell'SDK, cosa che per te sembra essere C:\android\android-sdk-windows\tools, quindi assicurati prima di cdentrare in quella directory (o aggiungila al tuo sistema %Path%).

Eclipse potrebbe non rilevare immediatamente l'emulatore oppure potrebbe riconoscerlo e quindi interrompere la connessione. Se si verifica uno di questi, fai clic sul menu Visualizza nella scheda Dispositivi (la piccola freccia accanto al pulsante Riduci a icona) e seleziona "Ripristina adb" per ripristinare la connessione.

Una volta che viene visualizzato nei tuoi dispositivi, fai quello che stavi cercando di fare prima. Esegui adb remountper ottenere la /systempartizione in modalità lettura-scrittura, quindi usa Eclipse per spingere il file dove vuoi. Ho provato con un paio di file casuali un minuto fa e sono riuscito a spingerli /system/xbinsenza problemi.

Per riferimento, ecco la dimensione della partizione e l'uso del /systemmio emulatore Donut quando specifico una partizione da 512 MB:

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

Ma ecco come appare se lancio senza specificare una dimensione:

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

Inoltre, se lo si desidera, è possibile impostare le opzioni della riga di comando nella configurazione di esecuzione dell'applicazione tramite Eclipse. Vai nella tua prospettiva Java, quindi seleziona Run->Run Configurationsdalla barra dei menu. Seleziona la tua applicazione nel riquadro di sinistra, quindi seleziona la scheda "Destinazione". Nella parte inferiore è presente una casella di testo denominata "Opzioni della riga di comando dell'emulatore aggiuntivo", che puoi aggiungere -partition-size <MBs>a quella casella di testo in modo che l'emulatore avviato quando esegui l'applicazione abbia una /systempartizione più grande .

Nota: potrebbe essere necessario aggiungere anche -no-snapstorageo altre opzioni, per disabilitare il caricamento dell'istantanea esistente, nella riga di comando. Per me non ha funzionato senza di essa.


Grazie mille partita !!! Risolvi il mio problema !!! molte grazie !!!!!!!
ViTo Brothers Apoyan,

0

Il modo più semplice: riavviare il telefono in modalità di ripristino, quindi montare il sistema. Ora puoi inviare il tuo file senza problemi.


Presumo che ti sia sfuggita la linea /dev/block/mtdblock0 /system yaffs2 rw 0 0nella domanda? Quindi cosa dovrebbe cambiare quando lo monti dal ripristino? Full è pieno, non si guadagna spazio aggiuntivo su un file system completo montandolo "da altrove".
Izzy

-2

Come risolvere: "Impossibile selezionare la selezione: memoria insufficiente"

Durante la creazione di un nuovo dispositivo virtuale Android (AVD) .. nella scheda SCHEDA SD digitare un valore (100) in MB.

Davvero, funziona per me !!


1
Questo non è corretto La creazione di una scheda SD virtuale non ti aiuterà a spingere i file nella /systempartizione quando viene posta la domanda. Sono aree di archiviazione completamente indipendenti.
eldarerathis,
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.