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?

Pentium10
źródło
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.

SomeCallMeTim
źródło
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ą.

Cijo
źródło
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

johndacostaa
źródło
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.

Proggear
źródło
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ć.

billiam
źródło
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.

Lassi Kinnunen
źródło
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
binhgreat
źródło
4

ten problem dotyczy Androida 1.5 .. wypróbuj 2.0, 2.1 lub 2.2

Vishal Khakhkhar
źródło
Dostaję to z 2.2 na moim N1
Erik B
2
Dostaję się na stackoverflow
..com/questions/3584297/…
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
ankit kumar
źródło
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 
user3099887
źródło
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?


źródło
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

Nirav Ranpara
źródło
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.

vinu
źródło
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.

Roman Shestakov
źródło
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?

Jeremy Logan
źródło
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.

Andhravaala
źródło
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"

Jone
źródło
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

Anton
źródło
-2

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

chwytak
źródło