एंड्रॉइड एमुलेटर के लिए स्टोरेज कैसे बढ़ाएं? (अपर्याप्त स्टोरेज के कारण लागू करने में विफल)


152

मुझे यह कभी-कभी (अक्सर नहीं) अपनी एक परियोजना के लिए, केवल दो वर्गों के लिए मिलता है
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

मैं एमुलेटर के भंडारण को कैसे बढ़ाऊं?


2
मुझे यह त्रुटि अक्सर दिखाई देती है, तब भी जब डिवाइस को बहुत सारे स्टोरेज के लिए इंस्टॉल किया जा रहा हो। बस ध्यान रखें कि कभी-कभी जब आप त्रुटि देखते हैं, तो त्रुटि संदेश जो कहता है वह वास्तव में सच नहीं है।
लांस नानक

1
@ Pentinum10 मैं 1.5 और 2.2 दोनों पर एक ही त्रुटि प्राप्त कर रहा हूं, इस प्रश्न की जांच करें जहां आपकी मदद की आवश्यकता है: stackoverflow.com/questions/3584297/… , कृपया मेरी मदद करें और मुझे पकड़ लें
परेश मेयानी

जवाबों:


127

अपडेट करें

यह उत्तर है, जैसा कि मैंने यह लिखा है, लगभग आठ साल पुराना है, और लगभग पांच साल बासी है। लेकिन यह अभी भी है (जैसा कि मैं इसे लिखता हूं) "स्वीकृत" उत्तर, क्योंकि यह प्रश्न का उत्तर देता है जब यह पूछा गया था।

नया उत्तर, जो नए एंड्रॉइड स्टूडियो टूल्स पर लागू होता है, यहां पाया जा सकता है: https://stackoverflow.com/a/35828035/62 - यह स्क्रीन शॉट्स के साथ एक शानदार उत्तर है। यदि आप Android Studio का उपयोग कर रहे हैं, तो नीचे दिए गए ग्रहण उत्तर को अनदेखा करें।

मूल ग्रहण-आधारित उत्तर

मैं इस प्रश्न का उत्तर खोज रहा था, और उपरोक्त उत्तरों से असंतुष्ट था। लेकिन तब मुझे जवाब मिला , इसलिए यहाँ यह भविष्य के संदर्भ के लिए है:

ग्रहण में संक्षेप (और स्पष्ट) करने के लिए, "डिबग कॉन्फ़िगरेशन" पर जाएं। आप "डीबग" आइकन के नीचे ड्रॉप-डाउन में पा सकते हैं। "लक्ष्य" चुनें, और लॉन्च करने के लिए एक पसंदीदा एमुलेटर लक्ष्य चुनें। फिर "अतिरिक्त एमुलेटर कमांड लाइन विकल्प" के तहत, इसे जोड़ें:

-प्रकरण-आकार १०२४

फिर एमुलेटर को बंद करें (और किसी भी उपकरण को हटा दें), और डिबग आइकन पर क्लिक करें, जो आपके द्वारा चुने गए पसंदीदा एमुलेटर को लॉन्च करेगा। यह महत्वपूर्ण है: ग्रहण को डीबगर लॉन्च करने की आवश्यकता है, न कि एवीडी।

मेरे लिए यह समस्या तय हो गई।


8
ध्यान दें कि "विभाजन-आकार" मेगाबाइट में है, और यह कि आम तौर पर एपीके को स्थापित करने के लिए आपको एपीके के आकार के रूप में कम से कम दो बार डिस्क स्थान की आवश्यकता होती है।
क्रिस्टोफर ऑर

5
एक और नोट करने के लिए: आपको उस प्रोजेक्ट पर राइट क्लिक करना होगा जिसे आप ग्रहण में चलाना चाहते हैं -> रन-> रन कॉन्फ़िगरेशन-> प्रोजेक्ट चुनें-> टारगेट -> स्क्रॉल डाउन-> एड -पार्टिशन-आकार 1024 से अतिरिक्त एम विकल्प-> फिर परियोजना को ग्रहण से
चलाएं

4
Google को Android 3.2 या 4.0 के लिए एक स्पष्ट संपत्ति पैरामीटर जोड़ना चाहिए। लानत को ठीक करें AVD प्लगइन
peter_pilgrim

अच्छा लगता है ... वास्तव में ADT टूलींग के माध्यम से उजागर किया जाना चाहिए। ICS एमुलेटर में केवल डिफ़ॉल्ट रूप से 60mb है! बॉक्स से बाहर की चीज़ पर APK स्थापित करना असंभव है।
ddewaele

1
किसी ने भी इस स्वीकृत उत्तर को बाद में देखा जैसे मैंने किया, आप शायद इसके बजाय stackoverflow.com/a/35828035/62 को देखना चाहते हैं ।
लिरोन याहदव

90

Android स्टूडियो पर

AVD प्रबंधक खोलें।

यहाँ छवि विवरण दर्ज करें

AVD को संपादित करने के लिए Edit Icon पर क्लिक करें।

यहाँ छवि विवरण दर्ज करें

उन्नत सेटिंग्स दिखाएँ पर क्लिक करें।

यहाँ छवि विवरण दर्ज करें

आवश्यकतानुसार आंतरिक संग्रहण, राम, एसडी कार्ड का आकार बदलें। समाप्त पर क्लिक करें।

यहाँ छवि विवरण दर्ज करें

हाँ क्लिक करके पॉपअप की पुष्टि करें।

यहाँ छवि विवरण दर्ज करें

AVD पर डेटा मिटाएं और हां क्लिक करके पॉपअप की पुष्टि करें।

यहाँ छवि विवरण दर्ज करें

महत्वपूर्ण: आकार बढ़ाने के बाद, यदि यह स्वचालित रूप से आपसे डेटा को पोंछने के लिए नहीं कहता है, तो आपको इसे AVD के पुल-डाउन मेनू को खोलकर और Wipe Data को चुनकर स्वयं करना होगा।

यहाँ छवि विवरण दर्ज करें

अब बढ़े हुए स्टोरेज के साथ अपने एमुलेटर को शुरू और इस्तेमाल करें।


7
एवीडी बनाने से पहले या बाद में "आंतरिक भंडारण" को बदलना मेरे लिए कुछ नहीं है। यह हमेशा 300MB और कम स्थान की चेतावनी के साथ आता है।
ट्रैविस क्रिश्चियन

3
क्या आपने आकार बदलने के बाद AVD प्रबंधक में ड्रॉप डाउन मेनू से डेटा मिटा दिया है।
किजो

1
मैंने पहले ही AVD को हटा दिया था, लेकिन यह नए कॉन्फ़िगर किए गए अन-लॉन्च किए गए चित्रों के साथ भी हो रहा था। मैंने एक और सवाल में पाया कि यह कुछ निश्चित एपीआई <23 के साथ एक मुद्दा है।
ट्रैविस क्रिश्चियन

OMG - इसके लिए धन्यवाद! यह एकमात्र समाधान है जो मैंने पाया कि काम किया!
13

2
यह स्वीकृत उत्तर होना चाहिए, और पहली बार प्रकट होना चाहिए (विरासत से संबंधित उत्तर नहीं)। यह आकार बदलने और एमुलेटर शुरू करने के लिए पर्याप्त नहीं है (यहां तक ​​कि कोल्ड बूट नाउ का उपयोग करते समय )। कुंजी को Wipe Data कमांड लगता है । धन्यवाद!
एलेक्स वांग

42

निम्नलिखित को avd config.ini में जोड़ें

disk.dataPartition.size=1024MB

मुझे पता है अगर यह तुम्हारे लिए भी काम करता है।

मैंने लाइन में जोड़ा डेटा विभाजन आकार कॉन्फ़िगरेशन जोड़ें
AVD स्टोरेज स्पेस का स्क्रीन शॉट बढ़ाया जा रहा है


एक 2.3 छवि पर मेरे लिए काम नहीं किया। मैं अभी भी केवल ऐप्स के लिए 128MB का आंतरिक संग्रहण उपलब्ध देखता हूं।
मथियास

1
मैंने देखा कि एवीडी मैनेजर के "एडिट" यूआई में, इस मान को मैन्युअल रूप से सेट करने की कोशिश करना हमेशा इसे 0 पर रीसेट करेगा। शायद संबंधित समस्या? शायद यह एंड्रॉइड के कुछ संस्करणों पर सेट होने वाला नहीं है?
माथियास

2
आपको 1024MBAVD प्रबंधक का उपयोग करते समय एक मूल्य दर्ज करना होगा । आप यह 1024पता लगाने के लिए थोड़ी देर तक प्रवेश नहीं कर सकते हैं , और मैंने इस काम की पुष्टि की है
रॉनी

19

AVD प्रबंधक चलाएं

अपने AVD का चयन करें और "विवरण ..." बटन पर क्लिक करें।

मेरे मामले में AVD प्रबंधक डिस्क आकार के रूप में सेट करता है

disk.dataPartition.size=4000M

यह अमान्य मान , निर्दिष्ट संख्याओं के बावजूद डिस्क लगभग 500MB है।

"AVD विवरण" में पथ द्वारा AVR के फ़ोल्डर पर जाएं।

इसे config.ini में संपादित करें

disk.dataPartition.size=4000MB

और सभी .img फ़ाइलों को हटा दें।


2
यह चयनित उत्तर होना चाहिए। यदि आप Google Play सक्षम AVD चला रहे हैं, तो Android Studio (3.0.1) के वर्तमान संस्करणों पर, संपादन सेटिंग्स गुण धूसर हो जाते हैं। यह काम किया। मैंने अपने परीक्षण उपकरण को 400 एमबी से 2000 एमबी में बदल दिया, सभी * .img और * .qcow2 फ़ाइलों को हटा दिया। AVD पर डेटा मिटा दिया। फिर इसे बूट किया, और इसमें 2000 एमबी स्टोरेज था।
MLindsay

@ लिंडसे I सहमत
mwa91

सिर्फ FYI करें, मुझे * .img या किसी अन्य फ़ाइल को हटाना नहीं था। Config.ini में बस मूल्य बदलना काफी था।
मोहिब शेठ

धन्यवाद! मेरे केस के लिए काम किया।
android_dev

10

मैं एक APK की स्थापना कर रहा था:

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

और मुझे एक त्रुटि संदेश मिल रहा था जो मुझे बता रहा था

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

बहुत बड़ा था। R15 से sdk टूल्स का उपयोग करना, और ADT 15 मैं अपने कुछ मौजूदा एमुलेटर की सेटिंग्स में हेरफेर करने के लिए AVD मैनेजर का उपयोग करने में सक्षम था:

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

फिर "स्किन:" के नीचे हार्डवेयर प्रॉपर्टीज विंडो में जा रहा हूं। मैं हार्डवेयर के साथ चयन करने में सक्षम था: नया बटन 'विभाजन का आदर्श आकार'। मैं, हालांकि, '0' के अलावा अन्य मूल्य निर्धारित करने में सक्षम नहीं था। अनडाउन्टेड, मैं अपने $ {HOME} /। Android / avd डाइरेक्टरी में गया, वहाँ 'MyVm.avd' डायरेक्टरी थी। उस निर्देशिका में जाने पर मुझे एक 'config.ini' फ़ाइल मिली। प्रविष्टि थी:

disk.dataPartition.size=0

मैंने इसे इसके लिए निर्धारित किया है:

disk.dataPartition.size=1024

.. फिर AVD मैनेजर में वापस गया, MyVm को चुना, 'स्टार्ट' को चुना, निम्नलिखित डायल करने के लिए उपयोगकर्ता डेटा को जीतने के लिए मिटाया, और चलाने और स्थापित करने में सक्षम था।


यह पिछली बार ठीक था, लेकिन आज मुझे लिखना था disk.dataPartition.size=1024MB, क्योंकि 1024और 1024mकाम नहीं कर रहे थे।
सूफियान

6

एवीडी प्रबंधक के पास "सिस्टम विभाजन का आदर्श आकार" एक विकल्प है, जो कि 1024MB पर सेट करने का प्रयास करें, या कमांडलाइन लॉन्च विकल्प का उपयोग करें जो ऐसा ही करता है।

फी, मुझे केवल 4.0 एमुलेटर छवि के साथ इस समस्या का सामना करना पड़ा।


मुझे भी। जब आप ऐसा करते हैं तो सुनिश्चित करें कि एमुलेटर को एक स्वच्छ स्थिति से पुनः आरंभ करें और स्नैपशॉट से नहीं।
मैनफ्रेड मोजर

6

निम्नानुसार कमांड लाइन द्वारा एमुलेटर शुरू करें:

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

निश्चित नहीं है कि यह मतदान क्यों किया गया - मेरे लिए काम किया इसलिए अप वोट दिया। :)
राबर्ट

3

लिनक्स में एंड्रॉइड एमुलेटर के भंडारण का आकार बदलने के लिए:

1) qemu स्थापित करें

2) वर्चुअल मशीन की img फ़ाइलों वाली निर्देशिका का पता लगाएँ। कुछ इस तरह ~ / .android / avd / .avd और cd को।

3) ext4 छवियों का आकार बदलें: यानी 500Mb से 4Gb निष्पादित करने के लिए बढ़ रहा है

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

4) फाइलसिस्टम विकसित करें:

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

5) एसडी कार्ड छवि के लिए, वैकल्पिक: डेटा बचाव:

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

6) 100Mb से Gb तक छवि का आकार बदलें:

qemu-img resize sdcard.img +3.9GB

7) फाइलसिस्टम को फिर से जेनरेट करें:

mkfs.vfat sdcard.img

8) वैकल्पिक: पुराने डेटा को पुनर्स्थापित करें:

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

2

मैं एक शुरुआती हूं, लेकिन मुझे "हैलो ग्रिड व्यू" के साथ खेलने के दौरान यह समस्या थी। मैं अपने स्वयं के फोटो का उपयोग करने की कोशिश कर रहा था, जो सभी फ़ाइल आकार में बहुत बड़े थे।

त्वरित फ़िक्स को फ़ोटो की संख्या को कम करना था, इस प्रकार एपीके फ़ाइल का आकार कम करना था।

लेकिन, मुझे लगता है कि इस धागे को हिट करने वाले किसी और के लिए मेरे अनुवर्ती प्रश्न यह है: मैं जेपीजी और एमपी 3 जैसी बड़ी फ़ाइलों को एक ऐप में कैसे संलग्न करूं और यह सुनिश्चित करूं कि वे एसडी कार्ड में सेव करें ताकि एपीके छोटा बना रहे?


2
मुझे लगता है कि मुझे यहाँ उत्तर मिला: developer.android.com/guide/topics/resources/index.html किसी भी बड़े तत्वों के लिए "संसाधनों" के बजाय "संपत्ति" का उपयोग करने का प्रयास करें। पृष्ठ से: संसाधन एक Android अनुप्रयोग का एक अभिन्न अंग हैं। सामान्य तौर पर, ये बाहरी तत्व होते हैं जिन्हें आप अपने एप्लिकेशन में शामिल करना चाहते हैं और संदर्भ देते हैं, जैसे कि चित्र, ऑडियो, वीडियो, टेक्स्ट स्ट्रिंग्स, लेआउट, थीम आदि। प्रत्येक Android एप्लिकेशन में संसाधनों के लिए एक निर्देशिका (res /) और एक निर्देशिका होती है। आस्तियाँ (आस्तियाँ /)।

2

आपको एमुलेटर की वर्चुअल मेमोरी बढ़ाने की आवश्यकता है

एमुलेटर की वर्चुअल मेमोरी कैसे बढ़ाएं

एमुलेटर -वार्ड "एमुलेटर नाम" -प्रकरण-आकार 2024

इसके बाद अपना एपीके इंस्टॉल करने की कोशिश करें


2

एवीडी मैनेजर में अपनी सेटिंग्स को अपडेट करें और 'वाइप यूजर डेटा' को सक्षम करके डिवाइस को शुरू करें। इसने मेरे लिए काम किया।


1
नए AVD इंटरफ़ेस में, एमुलेटर लाइन पर राइट-क्लिक करें, फिर आंतरिक संग्रहण बदलने के बाद उपयोगकर्ता डेटा मिटाएं।
तियागो ज़ोर्टे दे कंटो

1

मुझे लगता है कि आपको एमुलेटर को "एमुलेटर -वाइप-डेटा -avd YourAvdName" के साथ पुनः आरंभ करना चाहिए या यदि आप ग्रहण का उपयोग कर रहे हैं तो रन कॉन्फ़िगरेशन में "वाइप यूजर डेटा" की जांच करें।

मैं अभी उसी मुद्दे का सामना कर रहा हूं।


0

जब मैंने देखा कि ऐसा होने का एकमात्र समय था जब मेजबान फाइलसिस्टम मूल रूप से अंतरिक्ष से बाहर था। क्या आपके पास फ़ाइल सिस्टम पर बहुत अधिक खाली स्थान है जहां VM का फ़ाइल सिस्टम संग्रहीत है?


मेरी हार्ड डिस्क पर बहुत सी जगह है 13GB मुफ्त।
पेंटियम

0

यह एक उपयुक्त उत्तर नहीं है, लेकिन यह एक छोटा संकेत है।

यदि आप अपने App में static files का उपयोग करना चाहते हैं। आपको उन्हें संसाधनों या संपत्ति के रूप में रखना चाहिए। लेकिन, अगर आपके पास मेमोरी चिंताएं हैं, जैसे कि आपका एपीके छोटा रखना है, तो आपको अपना ऐप डिज़ाइन इस तरह से बदलना होगा,

अपने ऐप को चलाने के दौरान उन्हें संसाधनों के रूप में डालने के बजाय, आप एसडी कार्ड से फ़ाइलें (आमतौर पर अलग-अलग फ़ाइलों को ले सकते हैं क्योंकि उपयोगकर्ता उन फ़ाइलों को नहीं रख सकते हैं जिनकी आपको आवश्यकता है)। इसके लिए यू यूजर सिलेक्शन पर ऑडियो, इमेज फाइल्स लेने के लिए ContentResolver का इस्तेमाल कर सकते हैं।

इसके साथ आप उपयोगकर्ता को एक और सुविधा दे सकते हैं जैसे वह अपनी पसंद के अनुसार ऐप में ऑडियो / इमेज फाइल लोड कर सकता है।


0

आप ग्रहण के मंच पर AVD प्रबंधक संवाद में बाएं पेड़ "वर्चुअल डिवाइस" से एक आइटम का चयन करते समय शुरुआत कर सकते हैं, शुरुआत यूआई में "वाइप यूजर डेटा" विकल्प है


0

निम्नलिखित दृष्टिकोण ने मेरे लिए काम किया

  1. टर्मिनल विंडो में अपने Android SDK / टूल फ़ोल्डर में नेविगेट करें (यदि आपने इसके लिए पथ नहीं जोड़ा है तो)

  2. सुनिश्चित करें कि जिस वर्चुअल डिवाइस को आप साफ करने की योजना बना रहे हैं, वह संचालित है।

  3. कमांड चलाएं "./emulator -wipe-data -avd YourAvdName" जहां YourAvdName आपके वर्चुअल एंड्रॉइड डिवाइस का नाम है


-2

प्रोजेक्ट चुनने की कोशिश करें -> साफ। एक साधारण साफ इसे ठीक कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.