Jak zwiększyć przestrzeń dyskową dla emulatora Androida? (NIE UDAŁO SIĘ ZAINSTALOWAĆ, ZBYT MAŁO PAMIĘCI)


152

Dostaję to czasami (niezbyt często) dla jednego z moich projektów, tylko na kilka zajęć
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

Jak zwiększyć pamięć emulatora?


2
Widzę ten błąd dość często, nawet jeśli instalowane urządzenie ma dużo pamięci. Pamiętaj tylko, że czasami, gdy widzisz błąd, treść komunikatu o błędzie nie jest w rzeczywistości prawdą.
Lance Nanek

1
@ Pentinum10 Otrzymuję ten sam błąd zarówno w wersji 1.5, jak i 2.2, sprawdź to pytanie, w którym wymagana jest Twoja pomoc: stackoverflow.com/questions/3584297/… , pomóż mi i złap mnie
Paresh Mayani

Odpowiedzi:


127

Aktualizacja

W chwili, gdy to piszę, ta odpowiedź ma prawie osiem lat i około pięciu lat. Ale nadal (jak to piszę) jest odpowiedzią „zaakceptowaną”, ponieważ odpowiedziała na pytanie, kiedy zostało zadane.

Nowszą odpowiedź, która dotyczy nowszych narzędzi Android Studio, można znaleźć tutaj: https://stackoverflow.com/a/35828035/62 - to świetna odpowiedź ze zrzutami ekranu. Jeśli używasz Android Studio, zignoruj ​​poniższą odpowiedź Eclipse.

Oryginalna odpowiedź oparta na Eclipse

Szukałem odpowiedzi na to pytanie i nie byłem zadowolony z powyższych odpowiedzi. Ale potem znalazłem odpowiedź , więc oto dla przyszłego odniesienia:

Podsumowując (i wyjaśniając), w Eclipse przejdź do „Konfiguracji debugowania”. Można to znaleźć w menu rozwijanym pod ikoną „debugowania”. Wybierz „cel” i preferowany cel emulatora do uruchomienia. Następnie w sekcji „dodatkowe opcje wiersza poleceń emulatora” dodaj to:

-rozmiar partycji 1024

Następnie ZAMKNIJ emulator (i usuń wszystkie urządzenia) i kliknij ikonę debugowania, co spowoduje uruchomienie wybranego preferowanego emulatora. To ważne: Eclipse musi uruchomić debugger, a nie AVD.

To rozwiązało problem.


8
Zwróć uwagę, że „rozmiar partycji” jest wyrażony w megabajtach i że zazwyczaj do zainstalowania pakietu APK potrzebujesz co najmniej dwa razy więcej miejsca na dysku niż rozmiar pliku APK.
Christopher Orr,

5
Kolejna uwaga do zrobienia: Musisz kliknąć prawym przyciskiem myszy projekt, który chcesz uruchomić w eclipse -> Uruchom-> Uruchom konfigurację-> Wybierz projekt-> Cel -> przewiń w dół-> dodaj -partycja-rozmiar 1024 do dodatkowych opcji Em-> następnie uruchom projekt z eclipse
SpoiledTechie.com

4
Google powinien dodać to jawne parametry właściwości dla Androida 3.2 lub 4.0. Napraw cholerną wtyczkę Eclipse AVD
peter_pilgrim

niezłe znalezisko ... rzeczywiście powinno być odsłonięte przez narzędzia ADT. Emulator ICS ma domyślnie tylko 60 MB! niemożliwe jest zainstalowanie plików APK na urządzeniu po wyjęciu z pudełka.
ddewaele

1
Dla każdego, kto szuka tej akceptowanej odpowiedzi po latach, tak jak ja, prawdopodobnie zechcesz zajrzeć na stackoverflow.com/a/35828035/62 .
Liron Yahdav

90

W Android Studio

Otwórz Menedżera AVD.

wprowadź opis obrazu tutaj

Kliknij ikonę Edytuj, aby edytować AVD.

wprowadź opis obrazu tutaj

Kliknij opcję Pokaż ustawienia zaawansowane.

wprowadź opis obrazu tutaj

W razie potrzeby zmień pamięć wewnętrzną, pamięć RAM, rozmiar karty SD. Kliknij Finish.

wprowadź opis obrazu tutaj

Potwierdź wyskakujące okienko, klikając tak.

wprowadź opis obrazu tutaj

Wyczyść dane w AVD i potwierdź wyskakujące okienko, klikając tak.

wprowadź opis obrazu tutaj

Ważne: jeśli po zwiększeniu rozmiaru nie poprosi Cię automatycznie o wyczyszczenie danych, musisz to zrobić ręcznie, otwierając menu rozwijane AVD i wybierając opcję Wyczyść dane.

wprowadź opis obrazu tutaj

Teraz uruchom i używaj swojego emulatora ze zwiększoną pamięcią masową.


7
Zmiana „Pamięci wewnętrznej” nic nie daje, przed ani po utworzeniu AVD. Zawsze pojawia się 300 MB i ostrzeżenie o małej ilości miejsca.
Travis Christian

3
Czy wyczyściłeś dane z rozwijanego menu w menedżerze AVD po zmianie rozmiaru?
Cijo

1
Usunąłem już AVD, ale działo się to również z nowo skonfigurowanymi nie uruchomionymi obrazami. W innym pytaniu znalazłem, że jest to problem z niektórymi interfejsami API <23.
Travis Christian

OMG - dziękuję za to! To jedyne rozwiązanie, które okazało się skuteczne!
SammyK

2
Powinna to być zaakceptowana odpowiedź i pierwsza, która się pojawi (nie dotyczy starszych odpowiedzi związanych z Eclipse). Nie wystarczy zmienić rozmiaru i uruchomić emulatora (nawet przy korzystaniu z Cold Boot Now ). Wydaje się, że kluczem jest polecenie Wipe Data . Dzięki!
Alex Vang

42

Dodaj następujące elementy do pliku avd config.ini

disk.dataPartition.size=1024MB

Daj mi znać, jeśli to działa również dla Ciebie.

Dodałem w linii Dodaj konfigurację rozmiaru partycji danych
Zwiększanie ilości miejsca na dysku AVD


Nie działa dla mnie na obrazie 2.3. Nadal widzę tylko 128 MB pamięci wewnętrznej dostępnej dla aplikacji.
Matthias

1
Zauważyłem, że w interfejsie użytkownika „Edycja” Menedżera AVD próba ręcznego ustawienia tej wartości zawsze spowoduje zresetowanie jej do 0. Być może jest to powiązany problem? Może nie powinno to być ustawione w niektórych wersjach Androida?
Matthias

2
Musisz wprowadzić wartość taką jak 1024MBpodczas korzystania z AVD Manager. Nie możesz po prostu wejść. 1024Zajęło to trochę czasu, aby to rozgryźć, a ja potwierdziłem, że to działa
Ronnie

19

Uruchom Menedżera AVD

Wybierz swój AVD i kliknij przycisk „Szczegóły ...”.

W moim przypadku AVD Manager ustawia rozmiar dysku na

disk.dataPartition.size=4000M

Ta nieprawidłowa wartość , dysk ma około 500 MB pomimo określonych liczb.

Przejdź do folderu AVR według ścieżki w „Szczegóły AVD”.

Edytuj go w config.ini do

disk.dataPartition.size=4000MB

i usuń wszystkie pliki .img.


2
To powinna być wybrana odpowiedź. W obecnych wersjach Android Studio (3.0.1) właściwości ustawień edycji są wyszarzone, jeśli używasz AVD obsługującego Google Play. To zadziałało. Zmieniłem moje urządzenie testowe na 2000MB z 400M, usunąłem wszystkie pliki * .img i * .qcow2. Usunięto dane z AVD. Następnie uruchomił go i miał 2000 MB pamięci.
MLindsay

@MLindsay Zgadzam się
mwa91,

FYI, nie musiałem usuwać * .img ani żadnego innego pliku. Wystarczyła zmiana wartości w config.ini.
Mohib Sheth

Dzięki! Pracował dla mojej sprawy.
android_dev

10

Robiłem instalację apk:

adb install /home/me/jones_android-arm.apk

Otrzymałem komunikat o błędzie z informacją o tym

/data/local/tmp/jones_android-arm.apk

był za duży. Korzystając z narzędzi sdk z r15 i ADT 15, byłem w stanie użyć menedżera AVD do manipulowania niektórymi ustawieniami mojego istniejącego emulatora:

Window-> AVD Manager -> (select you virtual machine) -> Edit

następnie przechodząc do okna Właściwości sprzętu tuż pod „Skórą”: mogłem wybrać za pomocą przycisku Sprzęt: Nowy „Idealny rozmiar partycji”. Nie mogłem jednak ustawić innej wartości niż „0”. Niezrażony wszedłem do katalogu $ {HOME} /. Android / avd. Był tam katalog „MyVm.avd”. Wchodząc do tego katalogu znalazłem plik „config.ini”. Był wpis:

disk.dataPartition.size=0

Ustawiłem to na:

disk.dataPartition.size=1024

.. następnie wrócił do Menedżera AVD, wybrał MyVm, wybrał „Start”, zdecydował się wyczyścić dane użytkownika w wyświetlonym oknie dialogowym i był w stanie uruchomić i zainstalować.


Ostatnim razem działało dobrze, ale dziś musiałem pisać disk.dataPartition.size=1024MB, ponieważ 1024i 1024mnie działałem.
Sufian

6

Menedżer avd ma opcję „idealny rozmiar partycji systemowej”, spróbuj ustawić ją na 1024 MB lub użyj opcji uruchamiania wiersza poleceń, która robi to samo.

fyi, napotkałem ten problem tylko z obrazem emulatora 4.0.


To samo tutaj. Kiedy to zrobisz, upewnij się, że uruchomiłeś ponownie emulator z czystego stanu, a NIE z migawki.
Manfred Moser,

6

Po prostu uruchom emulator za pomocą wiersza poleceń w następujący sposób:

emulator -avd <your avd name> -partition-size 1024 -wipe-data


3
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.junkfoodian"
android:installLocation="preferExternal"   // this line can work for  Installation error:            //                                             // INSTALL_FAILED_INSUFFICIENT_STORAGE

Nie jestem pewien, dlaczego głosowano w dół - działało dla mnie, więc miej głos w górę. :)
Robert

3

Aby zmienić rozmiar miejsca przechowywania emulatora Androida w systemie Linux:

1) zainstaluj qemu

2) Zlokalizuj katalog zawierający pliki img maszyny wirtualnej. Coś w rodzaju ~ / .android / avd / .avd i cd do tego.

3) Zmień rozmiar obrazów ext4: np. W celu zwiększenia z 500 Mb do 4 GB

qemu-img resize userdata.img +3.5GB
qemu-img resize userdata-qemu.img +3.5GB

4) Rozwiń system plików:

e2fsck -f userdata.img
resize2fs userdata.img
e2fsck -f userdata-qemu.img
resize2fs userdata-qemu.img

5) W przypadku obrazu karty SD opcjonalnie: uratuj dane:

mkdir 1
mount -o loop sdcard.img 1
cp -a 1 2
umount 1

6) zmień rozmiar obrazu ze 100 Mb na GB:

qemu-img resize sdcard.img +3.9GB

7) ponownie wygeneruj system plików:

mkfs.vfat sdcard.img

8) opcjonalnie: przywróć stare dane:

mount -o loop sdcard.img 1
cp -a 2/* 1
mount -o loop sdcard.img 1 

2

Jestem początkującym, ale miałem ten problem podczas zabawy z „Hello Grid View”. Próbowałem użyć własnych zdjęć, które były bardzo duże.

Szybką naprawą było zmniejszenie liczby zdjęć, a tym samym zmniejszenie rozmiaru pliku APK.

Ale wydaje mi się, że moje dalsze pytanie dla każdego, kto trafi na ten wątek, jest następujące: Jak dołączyć duże pliki, takie jak JPG i MP3 do aplikacji, i upewnić się, że zapisują się na karcie SD, aby APK pozostał mały?


2
Myślę, że znalazłem odpowiedź tutaj: developer.android.com/guide/topics/resources/index.html Spróbuj użyć „zasobów” zamiast „zasobów” dla dowolnych dużych elementów. Ze strony: Zasoby są integralną częścią aplikacji na Androida. Ogólnie są to elementy zewnętrzne, które chcesz uwzględnić i odwoływać się do swojej aplikacji, takie jak obrazy, audio, wideo, ciągi tekstowe, układy, motywy itp. Każda aplikacja na Androida zawiera katalog zasobów (res /) i katalog dla aktywa (aktywa /).

2

musisz zwiększyć pamięć wirtualną emulatora

Jak zwiększyć pamięć wirtualną emulatora

emulator -avd "Nazwa emulatora" -rozmiar partycji 2024

potem spróbuj zainstalować apk


2

Zaktualizuj swoje ustawienia w AVD Manager i uruchom urządzenie, włączając opcję „Wyczyść dane użytkownika”. To zadziałało dla mnie.


1
W nowym interfejsie AVD kliknij prawym przyciskiem myszy wiersz emulatora, a następnie wybierz wyczyść dane użytkownika po zmianie pamięci wewnętrznej.
Tiago Zortéa De Conto,

1

Wydaje mi się, że należy ponownie uruchomić emulator za pomocą polecenia „emulator -wipe-data -avd YourAvdName” lub zaznaczyć opcję „Wipe User Data” w konfiguracji uruchamiania, jeśli używasz Eclipse.

Mam teraz ten sam problem.


0

Widziałem to tylko raz, gdy w systemie plików hosta było praktycznie za mało miejsca. Czy masz dużo wolnego miejsca w systemie plików, w którym przechowywany jest system plików maszyny wirtualnej?


Mam dużo wolnego miejsca na twardych dyskach 13 GB.
Pentium

0

Z pewnością nie jest to właściwa odpowiedź, ale jest to mała wskazówka.

Jeśli chcesz korzystać z plików statycznych w swojej aplikacji. Powinieneś umieścić je jako zasoby lub aktywa. Ale jeśli masz problemy z pamięcią, jak zachować mały plik APK, musisz zmienić projekt aplikacji w taki sposób, aby

zamiast umieszczać je jako zasoby, podczas uruchamiania aplikacji (po instalacji) możesz pobrać pliki (z pewnością różne pliki, ponieważ użytkownik może nie przechowywać plików, których potrzebujesz) z karty SD. W tym celu U może używać ContentResolver do pobierania plików audio i obrazów na wybór użytkownika.

Dzięki temu możesz zapewnić użytkownikowi inną funkcję, na przykład ładowanie plików audio / obrazów do aplikacji według własnego wyboru.


0

możesz uruchomić ten wybierając jeden element z lewego drzewa "urządzenie wirtualne" w oknie dialogowym menedżera AVD na platformie eclipse, startowy interfejs użytkownika posiada opcję "Wyczyść dane użytkownika"


0

Poniższe podejście zadziałało dla mnie

  1. Przejdź do folderu Android SDK / Tools w oknie terminala (na wypadek, gdybyś nie dodał do niego ścieżki)

  2. Upewnij się, że urządzenie wirtualne, które planujesz wyczyścić, jest wyłączone.

  3. Uruchom polecenie „./emulator -wipe-data -avd YourAvdName”, gdzie YourAvdName to nazwa Twojego wirtualnego urządzenia z systemem Android


-2

Spróbuj wybrać projekt -> wyczyść. Proste czyszczenie może to naprawić.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.