Jak rozwiązać: „Nie udało się wypchnąć zaznaczenia: Brak pamięci”

11

I Utwórz artykuł w przepełnieniu stosu . Ale kiedy znalazłem tę stronę, postanawiam zadać to samo pytanie, ponieważ nadal potrzebuję twojej pomocy.

Wykonałem następujące kroki:

  1. Uruchom Eclipse
  2. Idź do: Okno -> Otwórz perspektywę -> Inne ...
  3. Wybierz DDMS z otwartego okna dialogowego
  4. Wybierz kartę „ Eksplorator plików ”.
  5. Naciśnij „ Wciśnij plik na urządzenie ” i wybierz bibliotekę, którą chcę wcisnąć.

    Nie można wypchnąć zaznaczenia: system plików tylko do odczytu

  6. Zminimalizuj wszystkie otwarte okna i otwórz wiersz poleceń
  7. Napisz: cd C: \ android \ android-sdk-windows \ platforma-tools enter
  8. Napisz: abd remount enter

    Zobaczysz, że ponowne zamontowanie zakończyło się powodzeniem

  9. Maksymalizuj Eclipse i spróbuj krok 5.

    Nie udało się wypchnąć zaznaczenia: Brak pamięci

Pojawia się błąd! Co zrobić, aby rozwiązać ten problem ... Proszę o pomoc.

DODANY

1) Kiedy piszę 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 zaczyna się od: #

ViTo Brothers Apoyan
źródło
2
Pytania rozwojowe są tutaj uważane za nie na temat, zgodnie z naszymi FAQ .
newuser
Przeczytałem słowo „Eclipse”, więc głosowałem za jego zamknięciem, ale teraz, kiedy przeczytałem resztę posta i powiązany link, zaczynam myśleć, że jest to dobry przykład pytań, które otrzymujesz podczas opracowywania aplikacji, która nie są tak naprawdę pytaniem rozwojowym. Nie mogę wycofać mojego głosu z bliska, ale mogę ostrzec innych, aby nie oddawali głosu tak szybko.
Lie Ryan,
Zgadzam się z @Lie, że jest to szary obszar. Mówię, że na razie powinno to pozostać otwarte.
ale
@ViTo Brothers Apoyan: Mam dwa pytania 1) Jakie wyniki masz, kiedy to robisz adb shell mount(da ci to wszystkie systemy plików zamontowane w urządzeniu i ich opcje montowania)? 2) kiedy to zrobisz adb shell, czy monit powłoki zaczyna się od #(co oznacza, że ​​jesteś rootem) czy $(co oznacza, że ​​nie jesteś rootem)?
Lie Ryan,
również otagowałeś to pytanie android-x86, android-x86 ! = emulator Androida działający na komputerze-hoście x86. Czy faktycznie używasz Androida-x86 lub zwykłego emulatora?
Lie Ryan

Odpowiedzi:

12

Uruchom emulator z wiersza polecenia, aby określić /systemrozmiar partycji za pomocą -partition-size <MB>opcji. Na przykład używam tego do uruchomienia emulatora z systemem Android 1.6 z /systempartycją 512 MB:

emulator -avd Donut -partition-size 512

... gdzie „Pączek” to jakkolwiek nazwałeś swój AVD (w razie potrzeby możesz sprawdzić w menedżerze AVD Eclipse). Plik emulatorbinarny powinien znajdować się w twoim tools/katalogu w ramach instalacji SDK, co wydaje się być C:\android\android-sdk-windows\tools, więc najpierw upewnij się, że cddo tego katalogu (lub dodaj go do systemu %Path%).

Zaćmienie może nie od razu podnieść emulatora lub może go rozpoznać, a następnie przerwać połączenie. Jeśli tak się stanie, kliknij menu Widok na karcie Urządzenia (mała strzałka obok przycisku minimalizacji) i wybierz „Resetuj adb”, aby przywrócić połączenie.

Gdy pojawi się na urządzeniach, zrób to, co próbujesz zrobić wcześniej. Uruchom, adb remountaby uzyskać /systempartycję w trybie do odczytu i zapisu, a następnie za pomocą Eclipse wypchnij plik gdziekolwiek chcesz. Przed chwilą przetestowałem kilka losowych plików i /system/xbinbez problemu mogłem je wypchnąć .

Dla porównania, oto rozmiar partycji i użycie w /systememulatorze Donut, gdy określę partycję 512 MB:

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

Ale tak to wygląda, jeśli uruchomię bez podania rozmiaru:

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

Ponadto, jeśli chcesz, możesz ustawić opcje wiersza poleceń w konfiguracji uruchamiania aplikacji za pomocą Eclipse. Przejdź do perspektywy Java, a następnie wybierz Run->Run Configurationsz paska menu. Wybierz aplikację w lewym okienku, a następnie wybierz kartę „Cel”. U dołu znajduje się pole tekstowe z napisem „Dodatkowe opcje wiersza polecenia emulatora”, które można dodać -partition-size <MBs>do tego pola tekstowego, aby emulator uruchamiany po uruchomieniu aplikacji miał większą /systempartycję.

Uwaga: Może być konieczne dodanie również -no-snapstorageinnych opcji, aby wyłączyć ładowanie istniejącej migawki do wiersza poleceń. Bez mnie to nie działałoby.

eldarerathis
źródło
Dziękuję bardzo !!! Rozwiązujesz mój problem !!! wielkie dzięki !!!!!!!
ViTo Brothers Apoyan,
0

Prosty sposób: uruchom ponownie telefon w trybie odzyskiwania, niż zamontuj system. Teraz możesz bez problemu przesłać plik.

Joop
źródło
Zakładam, że przegapiłeś linię /dev/block/mtdblock0 /system yaffs2 rw 0 0w pytaniu? Więc co powinno się zmienić, gdy montujesz go po odzyskaniu? Pełna jest pełna, nie zyskujesz dodatkowego miejsca w pełnym systemie plików, montując go „z innego miejsca”.
Izzy
-2

Jak rozwiązać: „Nie udało się wypchnąć zaznaczenia: Brak pamięci”

Podczas tworzenia nowego urządzenia wirtualnego z systemem Android (AVD) .. na karcie KARTY SD wpisz wartość (100) w MB.

Naprawdę, działa dla mnie !!

Pandian
źródło
1
To nie jest poprawne. Utworzenie wirtualnej karty SD nie pomoże w wypychaniu plików na /systempartycję, o co pyta pytanie. Są to całkowicie niepowiązane obszary przechowywania.
eldarerathis