Android Emulator için depolama alanı nasıl artırılır? (INSTALL_FAILED_INSUFFICIENT_STORAGE)


154

Bunu bazen (çoğu zaman değil) projelerimden biri için alıyorum, sadece birkaç ders için
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

Öykünücünün depolamasını nasıl artırabilirim?


2
Bu hatayı, kurulmakta olan cihaz bol miktarda depolama alanına sahip olsa bile oldukça sık görüyorum. Bazen hatayı gördüğünüzde, hata mesajının söylediği şeyin aslında doğru olmadığını unutmayın.
Lance Nanek

1
@ Pentinum10 Hem 1.5 hem de 2.2'de aynı hatayı alıyorum, yardımınızın gerektiği yerde bu soruyu kontrol edin: stackoverflow.com/questions/3584297/… , lütfen bana yardım edin ve beni yakalayın
Paresh Mayani

Yanıtlar:


130

Güncelleme

Bu cevap, ben bunu yazarken, yaklaşık sekiz yaşında ve yaklaşık beş yıldır bayat. Ama yine de (ben bunu yazarken) "kabul edilen" cevap, çünkü sorulduğunda soruyu cevapladı .

Daha yeni Android Studio araçları için geçerli olan daha yeni yanıt burada bulunabilir: https://stackoverflow.com/a/35828035/62 - ekran görüntüleri ile harika bir yanıt. Android Studio kullanıyorsanız aşağıdaki Eclipse yanıtını dikkate almayın.

Orijinal Eclipse Tabanlı Cevap

Bu sorunun cevabını arıyordum ve yukarıdaki cevaplardan memnun kalmadım. Ama sonra cevabı buldum , işte burada ileride başvurmak için:

Özetlemek (ve açıklığa kavuşturmak) için Eclipse'de "Hata Ayıklama Yapılandırmaları" na gidin. Bunu, "hata ayıklama" simgesinin altındaki açılır menüde bulabilirsiniz. "Hedef" i seçin ve başlatmak için tercih edilen bir emülatör hedefi seçin. Ardından "ek öykünücü komut satırı seçenekleri" altına şunu ekleyin:

bölüm boyutu 1024

Ardından öykünücüyü KAPATIN (ve tüm aygıtları kaldırın) ve seçmiş olduğunuz tercih edilen öykünücüyü başlatacak olan hata ayıklama simgesine tıklayın. Bu önemlidir: Eclipse'in AVD'yi değil, hata ayıklayıcıyı başlatması gerekir.

Bu benim için sorunu çözdü.


8
"Bölüm boyutunun" megabayt cinsinden olduğunu ve genellikle bir APK yüklemek için APK boyutunun en az iki katı disk alanına ihtiyacınız olduğunu unutmayın.
Christopher Orr

5
Yapmanız gereken başka bir not: Eclipse'de çalıştırmak istediğiniz projeye sağ tıklamalısınız -> Çalıştır-> Konfigürasyonu Çalıştır-> Proje Seç-> Hedef -> aşağı kaydır-> ek Em seçeneklerine-bölüm boyutu 1024 ekle-> sonra projeyi tutulmadan çalıştırın
SpoiledTechie.com

4
Google, bunu Android 3.2 veya 4.0 için açık bir özellik parametresi eklemelidir. Lanet Eclipse AVD eklentisi Fix
peter_pilgrim

güzel keşif ... gerçekten ADT araçlarıyla açığa çıkarılmalıdır. ICS öykünücüsü varsayılan olarak yalnızca 60 MB'ye sahiptir! Kutudan çıkan şey üzerine APK yüklemek imkansız.
ddewaele

1
Yıllar sonra benim yaptığım gibi bu kabul edilen yanıta bakan biri için, muhtemelen stackoverflow.com/a/35828035/62 adresine bakmak istersiniz .
Liron Yahdav

102

Android Studio'da

AVD Manager'ı açın.

görüntü açıklamasını buraya girin

AVD'yi düzenlemek için Simgeyi Düzenle'ye tıklayın.

görüntü açıklamasını buraya girin

Gelişmiş ayarları göster'i tıklayın.

görüntü açıklamasını buraya girin

Dahili Depolama, Ram, SD Kart boyutunu gerektiği gibi değiştirin. Bitir'e tıklayın.

görüntü açıklamasını buraya girin

Evet'i tıklayarak açılır pencereyi onaylayın.

görüntü açıklamasını buraya girin

AVD'deki Verileri Silin ve evet seçeneğine tıklayarak açılır pencereyi onaylayın.

görüntü açıklamasını buraya girin

Önemli: Boyutu artırdıktan sonra, sizden otomatik olarak verileri silmenizi istemezse, AVD'nin açılır menüsünü açıp Verileri Sil'i seçerek bunu manuel olarak yapmanız gerekir.

görüntü açıklamasını buraya girin

Şimdi Emülatörünüzü artırılmış depolama ile başlatın ve kullanın.


7
"Dahili Depolama" yı değiştirmek, AVD'yi oluşturmadan önce veya sonra benim için hiçbir şey yapmıyor. Her zaman 300MB ve düşük alan uyarısı ile gelir.
Travis Christian

3
Boyutu değiştirdikten sonra AVD yöneticisindeki açılır menüden verileri sildiniz mi?
Cijo

1
AVD'yi zaten sildim, ancak yeni yapılandırılmış başlatılmamış görüntülerde de oluyordu. Başka bir soruda bunun belirli API'lerle ilgili bir sorun <23 olduğunu buldum.
Travis Christian

OMG - bunun için teşekkürler! Bunun işe yaradığını bulduğum tek çözüm bu!
SammyK

2
Bu kabul edilen cevap olmalı ve ilk ortaya çıkan cevap olmalıdır (eski Eclipse ile ilgili cevaplar değil). Boyutu değiştirmek ve emülatörü başlatmak yeterli değildir ( Cold Boot Now kullanırken bile ). Anahtar, Verileri Sil komutu gibi görünüyor . Teşekkürler!
Alex Vang

42

Aşağıdakileri avd config.ini'ye ekleyin

disk.dataPartition.size=1024MB

Bunun sizin için de işe yarayıp yaramadığını bana bildirin.

Satıra ekledim Veri Bölümü Boyut Yapılandırması Ekle
AVD Depolama Alanının Ekran Görüntüsü artırılıyor


2.3 resim üzerinde benim için işe yaramadı. Hala uygulamalar için yalnızca 128 MB dahili depolama alanı görüyorum.
Matthias

1
AVD Manager'ın "Düzenle" arayüzünde bu değeri manuel olarak ayarlamaya çalışmanın onu her zaman 0'a sıfırlayacağını fark ettim. Belki ilgili bir sorun? Belki bazı Android sürümlerinde ayarlanması gerekmiyor mu?
Matthias

2
1024MBAVD Yöneticisini kullanırken gibi bir değer girmelisiniz . Bunu 1024anlamak için biraz zaman aldı ve bunun işe yaradığını onayladım
Ronnie

19

AVD Manager'ı çalıştırın

AVD'nizi seçin ve "Ayrıntılar ..." düğmesini tıklayın.

Benim durumumda AVD Manager disk boyutunu şu şekilde ayarlıyor:

disk.dataPartition.size=4000M

Bu geçersiz değer , belirtilen sayılara rağmen disk yaklaşık 500MB.

"AVD ayrıntıları" nda AVR klasörüne gidin.

Config.ini içinde düzenleyin

disk.dataPartition.size=4000MB

ve tüm .img dosyalarını kaldırın.


2
Bu seçilen cevap olmalıdır. Android Studio'nun (3.0.1) mevcut sürümlerinde, Google Play özellikli bir AVD çalıştırıyorsanız, düzenleme ayarları özellikleri grileşir. Bu işe yaradı. Test cihazımı 400M'den 2000MB'ye değiştirdim, tüm * .img ve * .qcow2 dosyalarını sildim. AVD'deki veriler silindi. Sonra onu başlattı ve 2000 MB depolama alanına sahipti.
MLindsay

@MLindsay Kabul ediyorum
mwa91

Bilginize, * .img veya başka bir dosyayı silmem gerekmedi. Sadece config.ini'deki değeri değiştirmek yeterliydi.
Mohib Sheth

Teşekkürler! Davam için çalıştı.
android_dev

10

Bir apk yüklemesi yapıyordum:

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

Ve bana bunu söyleyen bir hata mesajı alıyordum

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

çok büyüktü. R15 ve ADT 15'teki sdk araçlarını kullanarak, mevcut emülatörümün bazı ayarlarını değiştirmek için AVD yöneticisini kullanabildim:

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

daha sonra "Dış Görünüm:" ün hemen altındaki Donanım özellikleri penceresine gidiyorum: Donanım: Yeni düğmesi 'İdeal bölüm boyutu' ile seçim yapabildim. Bununla birlikte, '0' dışındaki bir değeri ayarlayamadım. Beklenmedik, $ {HOME} /. Android / avd dizinime gittim. Bir 'MyVm.avd' dizini vardı. Bu dizine girerken bir 'config.ini' dosyası buldum. Giriş vardı:

disk.dataPartition.size=0

Bunu şu şekilde ayarladım:

disk.dataPartition.size=1024

.. sonra AVD Yöneticisine geri döndü, MyVm'i seçti, "Başlat" ı seçti, kullanıcı verilerini silmeyi seçti, aşağıdaki iletişim kutusunu kazandıktan sonra çalıştırıp kurabildi.


Bu son kez para cezası çalıştı ama bugün yazma zorunda kaldı disk.dataPartition.size=1024MB, çünkü 1024ve 1024mçalışma değildi.
Sufian

6

avd yöneticisi "ideal boyutta sistem bölümü" seçeneğine sahiptir, bunu 1024MB olarak ayarlamayı deneyin veya aynı şeyi yapan komut satırı başlatma seçeneğini kullanın.

fyi, bu sorunla yalnızca 4.0 öykünücüsü görüntüsünde karşılaştım.


Burada aynı. Bunu yaptığınızda öykünücüyü bir anlık görüntüden DEĞİL, temiz bir durumdan yeniden başlattığınızdan emin olun.
Manfred Moser

6

Öykünücüyü aşağıdaki gibi komut satırıyla başlatın:

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

Bunun neden reddedildiğinden emin değilim - benim için işe yaradı, bu yüzden yukarı oy verin. :)
Robert

3

Android öykünücüsünün depolamasını Linux'ta yeniden boyutlandırmak için:

1) qemu'yu kurun

2) Sanal makinenin img dosyalarını içeren dizini bulun. ~ / .Android / avd / .avd ve cd gibi bir şey.

3) ext4 görüntülerini yeniden boyutlandırın: ör. 500Mb'den 4Gb'ye büyütmek için çalıştırın

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

4) dosya sistemini büyütün:

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

5) SD kart görüntüsü için, isteğe bağlı: verileri kurtarın:

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

6) görüntüyü 100Mb'den Gb'ye yeniden boyutlandırın:

qemu-img resize sdcard.img +3.9GB

7) dosya sistemini yeniden oluşturun:

mkfs.vfat sdcard.img

8) isteğe bağlı: eski verileri geri yükleyin:

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

2

Ben bir acemiyim, ancak "Hello Grid View" ile oynarken bu sorunu yaşadım. Dosya boyutunda çok büyük olan kendi fotoğraflarımı kullanmaya çalışıyordum.

Hızlı çözüm, fotoğraf sayısını azaltmak ve böylece APK dosyasının boyutunu azaltmaktı.

Ancak, sanırım bu konuya giren diğer herkes için takip sorum şudur: JPG'ler ve MP3'ler gibi büyük dosyaları bir uygulamaya nasıl ekleyebilirim ve APK'nin küçük kalması için SD Karta kaydettiklerinden emin olabilirim?


2
Sanırım cevabı burada buldum: developer.android.com/guide/topics/resources/index.html Büyük öğeler için "kaynaklar" yerine "varlıklar" kullanmayı deneyin. Sayfadan: Kaynaklar, bir Android uygulamasının ayrılmaz bir parçasıdır. Genel olarak bunlar, resimler, ses, video, metin dizeleri, düzenler, temalar vb. Gibi uygulamanıza dahil etmek ve başvurmak istediğiniz harici öğelerdir. Her Android uygulaması, kaynaklar için bir dizin (res /) ve varlıklar (varlıklar /).

2

emülatörün sanal belleğini artırmanız gerekir

Öykünücünün sanal belleği nasıl artırılır

öykünücü -avd "Öykünücü Adı" -bölüm boyutu 2024

daha sonra apk'nizi yüklemeyi deneyin


2

AVD Manager'da ayarlarınızı güncelleyin ve 'Kullanıcı verilerini sil'i etkinleştirerek cihazı başlatın. Bu benim için çalıştı.


1
Yeni AVD arayüzünde, emülatör satırına sağ tıklayın, ardından dahili depolamayı değiştirdikten sonra kullanıcı verilerini sil seçeneğini seçin.
Tiago Zortéa De Conto

1

Eclipse kullanıyorsanız, emülatörü "emulator -wipe-data -avd YourAvdName" ile yeniden başlatmanız veya çalıştırma yapılandırmasında "Wipe User Data" seçeneğini işaretlemeniz gerekir.

Şu anda aynı sorunla karşı karşıyayım.


0

Bunun gerçekleştiğini gördüğüm tek zaman, ana bilgisayar dosya sisteminin temelde boş olduğu zamandı. Sanal makinenin dosya sisteminin depolandığı dosya sisteminde çok fazla boş alanınız var mı?


Sabit disklerimde 13GB boş alan bol miktarda yer var.
Pentium10

0

Kesinlikle uygun bir cevap değil, ancak küçük bir ipucu.

Uygulamanızda statik dosyalardan yararlanmak istiyorsanız. Bunları kaynak veya varlık olarak koymalısınız. Ancak, APK'nızı küçük tutmak gibi bellek endişeleriniz varsa, Uygulama tasarımınızı şu şekilde değiştirmeniz gerekir:

Bunları kaynak olarak koymak yerine, Uygulamanızı çalıştırırken (kurulumdan sonra) SD Karttan dosyaları alabilirsiniz (kullanıcı ihtiyacınız olan dosyaları saklayamayacağı için kesinlikle farklı dosyalar). Bunun için, kullanıcı seçiminde ses, Görüntü dosyaları almak için ContentResolver'ı kullanabilir.

Bununla, kullanıcıya ses / görüntü dosyalarını kendi tercihine göre uygulamaya yükleyebilmesi gibi başka bir özellik verebilirsiniz.


0

Tutulma platformundaki AVD yöneticisi iletişim kutusundaki sol ağaç "sanal cihaz" dan bir öğe seçerken birini başlatabilirsiniz, başlangıç ​​kullanıcı arayüzünde "Kullanıcı Verilerini Sil" seçeneği vardır


0

Aşağıdaki yaklaşım benim için çalıştı

  1. Terminal penceresindeki android SDK / araçlar klasörünüze gidin (yolunu eklemediyseniz)

  2. Temizlemeyi planladığınız sanal cihazın kapalı olduğundan emin olun.

  3. "./Emulator -wipe-data -avd YourAvdName" komutunu çalıştırın; burada YourAvdName, sanal android cihazınızın adıdır


-2

Proje -> temiz seçmeyi deneyin. Basit bir temizlik sorunu çözebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.