So lösen Sie: "Fehler beim Drücken der Auswahl: Nicht genügend Speicher"

11

Ich erstelle einen Artikel im Stapelüberlauf . Aber als ich diese Seite gefunden habe, entscheide ich mich, hier dieselbe Frage zu stellen, weil ich immer noch Ihre Hilfe brauche.

Ich habe die folgenden Schritte gemacht:

  1. Starten Sie Eclipse
  2. Gehe zu: Fenster -> Perspektive öffnen -> Andere ...
  3. Wählen Sie im geöffneten Dialogfeld DDMS aus
  4. Wählen Sie die Registerkarte " Datei-Explorer ".
  5. Drücken Sie auf " Datei auf das Gerät übertragen " und wählen Sie die Bibliothek aus, die ich übertragen möchte.

    Auswahl fehlgeschlagen: Schreibgeschütztes Dateisystem

  6. Minimieren Sie alle geöffneten Fenster und öffnen Sie die Befehlszeile
  7. Schreiben Sie: cd C: \ android \ android-sdk-windows \ platform-tools eingeben
  8. Schreiben: abd remount eingeben

    Sie werden sehen, dass Remount erfolgreich ist

  9. Maximieren Sie Eclipse und versuchen Sie Schritt 5.

    Auswahl fehlgeschlagen: Nicht genügend Speicher

Fehler erscheint! Was tun, um dieses Problem zu lösen? Bitte helfen Sie.

HINZUGEFÜGT

1) Wenn ich ADB SHELL MOUNT schreibe:

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 beginnt mit: #

ViTo Brothers Apoyan
quelle
2
Entwicklungsfragen werden hier gemäß unseren FAQ als nicht zum Thema gehörend betrachtet .
Newuser
Ich habe das Wort "Eclipse" gelesen, also habe ich dafür gestimmt, dass es geschlossen wird, aber jetzt, da ich den Rest des Beitrags und den verknüpften Beitrag gelesen habe, denke ich, dass dies ein gutes Beispiel für Fragen ist, die Sie bei der Entwicklung einer Anwendung erhalten, die sind nicht wirklich Entwicklungsfrage. Ich kann meine enge Abstimmung nicht zurückziehen, aber ich kann andere Leute warnen, nicht so schnell eine enge Abstimmung abzugeben.
Lie Ryan
Ich stimme @Lie zu, dass dies eine Grauzone ist. Ich sage, das sollte vorerst offen bleiben.
Ale
@ViTo Brothers Apoyan: Ich habe zwei Fragen: 1) Welche Ausgabe haben Sie, wenn Sie dies tun adb shell mount(dies gibt Ihnen alle im Gerät gemounteten Dateisysteme und ihre Mount-Optionen)? 2) Wenn Sie dies tun adb shell, beginnt die Shell-Eingabeaufforderung mit #(was anzeigt, dass Sie root sind) oder $(was anzeigt, dass Sie nicht root sind)?
Lie Ryan
Außerdem haben Sie diese Frage mit android-x86, android-x86 ! = Android-Emulator markiert , der auf einem x86-Hostcomputer ausgeführt wird. Verwenden Sie tatsächlich Android-x86 oder nur den regulären Emulator?
Lie Ryan

Antworten:

12

Starten Sie den Emulator über die Befehlszeile, damit Sie /systemmit der -partition-size <MB>Option eine Partitionsgröße angeben können . Zum Beispiel starte ich damit einen Emulator mit Android 1.6 mit einer /systemPartition von 512 MB:

emulator -avd Donut -partition-size 512

... wo "Donut" ist, wie auch immer Sie Ihre AVD genannt haben (Sie können bei Bedarf im AVD-Manager von Eclipse nachsehen). Die emulatorBinärdatei sollte sich in Ihrem tools/Verzeichnis innerhalb Ihrer SDK-Installation befinden, was für Sie anscheinend der Fall C:\android\android-sdk-windows\toolsist. Stellen Sie also sicher, dass Sie sich zuerst cdin diesem Verzeichnis befinden (oder fügen Sie es Ihrem System hinzu %Path%).

Eclipse nimmt den Emulator möglicherweise nicht sofort auf oder erkennt ihn und trennt dann die Verbindung. In beiden Fällen klicken Sie auf das Ansichtsmenü auf der Registerkarte Geräte (der kleine Pfeil neben der Schaltfläche zum Minimieren) und wählen Sie "Adb zurücksetzen", um die Verbindung wiederherzustellen.

Sobald es auf Ihren Geräten angezeigt wird, tun Sie, was Sie zuvor versucht haben. Führen adb remountSie die /systemPartition aus, um sie in den Lese- / Schreibmodus zu versetzen, und verwenden Sie dann Eclipse, um die Datei an eine beliebige Stelle zu verschieben. Ich habe vor einer Minute mit ein paar zufälligen Dateien getestet und konnte sie /system/xbinproblemlos weiterleiten.

Als Referenz sehen Sie hier die Partitionsgröße und die Verwendung /systemauf meinem Donut-Emulator, wenn ich eine 512-MB-Partition spezifiziere:

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

Aber so sieht es aus, wenn ich ohne Angabe einer Größe starte:

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

Darüber hinaus können Sie Befehlszeilenoptionen in der Ausführungskonfiguration Ihrer Anwendung über Eclipse festlegen, wenn Sie möchten. Gehen Sie in Ihre Java-Perspektive und wählen Sie Run->Run Configurationsaus der Menüleiste. Wählen Sie Ihre Anwendung im linken Bereich aus und wählen Sie dann die Registerkarte "Ziel". Unten befindet sich ein Textfeld mit der Bezeichnung "Zusätzliche Emulator-Befehlszeilenoptionen". Sie können -partition-size <MBs>diesem Textfeld hinzufügen , damit der Emulator, der beim Ausführen Ihrer Anwendung gestartet wird, eine größere /systemPartition hat.

Hinweis: Möglicherweise müssen Sie auch -no-snapstorageoder andere Optionen zur Befehlszeile hinzufügen , um das Laden des vorhandenen Snaphots zu deaktivieren. Ohne hat es bei mir nicht geklappt.

Eldarerathis
quelle
Vielen Dank Spiel !!! Du löst mein Problem !!! Vielen Dank !!!!!!!
ViTo Brothers Apoyan
0

Der einfache Weg: Starten Sie Ihr Telefon im Wiederherstellungsmodus neu, bevor Sie das System bereitstellen. Jetzt können Sie Ihre Datei problemlos pushen.

Joop
quelle
Ich nehme an, Sie haben die Zeile /dev/block/mtdblock0 /system yaffs2 rw 0 0in der Frage verpasst ? Was sollte sich also ändern, wenn Sie es nach der Wiederherstellung bereitstellen? Voll ist voll, Sie gewinnen keinen zusätzlichen Speicherplatz in einem vollständigen Dateisystem, indem Sie es "von woanders" mounten.
Izzy
-2

So lösen Sie: "Fehler beim Drücken der Auswahl: Nicht genügend Speicher"

Geben Sie beim Erstellen eines neuen virtuellen Android-Geräts (AVD) auf der Registerkarte SD-KARTE einen Wert (100) in MB ein.

Wirklich, es funktioniert bei mir !!

Pandian
quelle
1
Das ist nicht richtig. Das Erstellen einer virtuellen SD-Karte hilft Ihnen nicht dabei, Dateien auf die /systemPartition zu übertragen, wenn die Frage gestellt wird. Sie sind völlig unabhängige Lagerbereiche.
Eldarerathis