วิธีเพิ่มที่เก็บข้อมูลสำหรับ Android Emulator (INSTALL_FAILED_INSUFFICIENT_STORAGE)


152

บางครั้งฉันได้รับสิ่งนี้ (ไม่บ่อย) สำหรับหนึ่งในโปรเจ็กต์ของฉันสองสามชั้นเท่านั้น
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

ฉันจะเพิ่มที่เก็บข้อมูลจำลองได้อย่างไร


2
ฉันเห็นข้อผิดพลาดนี้ค่อนข้างบ่อยแม้ว่าอุปกรณ์ที่ติดตั้งจะมีพื้นที่เก็บข้อมูลมากมาย เพียงจำไว้ว่าบางครั้งเมื่อคุณเห็นข้อผิดพลาดสิ่งที่ข้อความผิดพลาดบอกว่าไม่เป็นความจริง
Lance Nanek

1
@ Pentinum10 ฉันได้รับข้อผิดพลาดเดียวกันทั้ง 1.5 และ 2.2, เช็คเอาต์คำถามที่ต้องการความช่วยเหลือของคุณ: stackoverflow.com/questions/3584297/
......

คำตอบ:


127

ปรับปรุง

คำตอบนี้คือเมื่อฉันเขียนสิ่งนี้อายุเกือบแปดปีและค้างอยู่ประมาณห้าปี แต่มันยังคง (ตามที่ฉันเขียนนี้) คำตอบ "ยอมรับ" เพราะมันตอบคำถามเมื่อมันถูกถาม

คำตอบที่ใหม่กว่าที่ใช้กับเครื่องมือ Android Studio รุ่นใหม่สามารถดูได้ที่นี่: https://stackoverflow.com/a/35828035/62 - เป็นคำตอบที่ดีสำหรับภาพหน้าจอ หากคุณใช้ Android Studio ให้ข้ามคำตอบ Eclipse ด้านล่าง

คำตอบเดิมบน Eclipse

ฉันค้นหาคำตอบสำหรับคำถามนี้และไม่พอใจกับคำตอบข้างต้น แต่แล้วฉันก็พบคำตอบดังนั้นนี่คือสำหรับการอ้างอิงในอนาคต:

ในการสรุป (และชี้แจง) ใน Eclipse ให้ไปที่ "Debug Configuration" คุณสามารถค้นหาได้ในเมนูแบบเลื่อนลงใต้ไอคอน "debug" เลือก "เป้าหมาย" และเลือกเป้าหมายจำลองที่ต้องการเปิดใช้ จากนั้นภายใต้ "ตัวเลือกบรรทัดคำสั่งตัวจำลองเพิ่มเติม" เพิ่มสิ่งนี้:

- พาร์ทิชันขนาด 1024

จากนั้นปิดอีมูเลเตอร์ (และลบอุปกรณ์ใด ๆ ) แล้วคลิกไอคอน debug ซึ่งจะเปิดอีมูเลเตอร์ที่คุณเลือก สิ่งนี้มีความสำคัญ: Eclipse ต้องเรียกใช้ดีบักเกอร์ไม่ใช่ AVD

ที่แก้ไขปัญหาสำหรับฉัน


8
โปรดทราบว่า "ขนาดพาร์ติชัน" เป็นเมกะไบต์และโดยทั่วไปในการติดตั้ง APK คุณต้องใช้พื้นที่ดิสก์อย่างน้อยสองเท่าของขนาด APK
Christopher Orr

5
สิ่งที่ควรทราบอีกประการหนึ่ง: คุณต้องคลิกขวาที่โครงการที่คุณต้องการเรียกใช้ใน eclipse -> Run-> Run Configuration-> เลือก Project-> Target -> เลื่อนลง -> เพิ่ม -partition-size 1024 ถึงตัวเลือก Em เพิ่มเติม -> จากนั้นเรียกใช้โครงการจาก eclipse
SpoiledTechie.com

4
Google ควรเพิ่มพารามิเตอร์คุณสมบัติที่ชัดเจนสำหรับ Android 3.2 หรือ 4.0 แก้ไขปลั๊กอิน Eclipse AVD damn
peter_pilgrim

การค้นหาที่ดี ... ควรได้รับการเปิดเผยผ่านเครื่องมือ ADT ตัวจำลอง ICS มีค่าเริ่มต้น 60mb เท่านั้น! เป็นไปไม่ได้ที่จะติดตั้ง APK บนสิ่งนอกกรอบ
ddewaele

1
สำหรับใครก็ตามที่ดูคำตอบที่ยอมรับนี้หลายปีต่อมาอย่างที่ฉันทำคุณอาจต้องการดูstackoverflow.com/a/35828035/62แทน
Liron Yahdav

90

บน Android Studio

เปิดตัวจัดการ AVD

ป้อนคำอธิบายรูปภาพที่นี่

คลิกที่ไอคอนแก้ไขเพื่อแก้ไข AVD

ป้อนคำอธิบายรูปภาพที่นี่

คลิกแสดงการตั้งค่าขั้นสูง

ป้อนคำอธิบายรูปภาพที่นี่

เปลี่ยน Internal Storage, Ram, SD Card ขนาดเท่าที่จำเป็น คลิกเสร็จสิ้น

ป้อนคำอธิบายรูปภาพที่นี่

ยืนยันป๊อปอัพโดยคลิกใช่

ป้อนคำอธิบายรูปภาพที่นี่

ล้างข้อมูลใน AVD และยืนยันป๊อปอัปโดยคลิกใช่

ป้อนคำอธิบายรูปภาพที่นี่

สำคัญ:หลังจากเพิ่มขนาดแล้วหากไม่ได้ขอให้คุณลบข้อมูลโดยอัตโนมัติคุณต้องทำด้วยตนเองโดยเปิดเมนูแบบเลื่อนลงของ AVD แล้วเลือก Wipe Data

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้เริ่มและใช้ Emulator ของคุณด้วยพื้นที่เก็บข้อมูลเพิ่ม


7
การเปลี่ยน "Internal Storage" ไม่ทำอะไรเลยสำหรับฉันก่อนหรือหลังการสร้าง AVD มันมาพร้อมกับ 300MB และคำเตือนพื้นที่ต่ำ
Travis Christian

3
คุณล้างข้อมูลจากเมนูแบบเลื่อนลงในตัวจัดการ AVD เมื่อคุณเปลี่ยนขนาด
Cijo

1
ฉันลบ AVD แล้ว แต่มันเกิดขึ้นกับภาพที่ยังไม่เปิดตัวซึ่งเพิ่งเปิดใหม่ ฉันพบในคำถามอื่นว่าเป็นปัญหาของ API บางตัว <23
Travis Christian

OMG - ขอบคุณสำหรับสิ่งนี้! มันเป็นทางออกเดียวที่ฉันพบว่าใช้งานได้!
SammyK

2
นี่ควรเป็นคำตอบที่ยอมรับได้และเป็นคำตอบแรกที่ปรากฏ (ไม่ใช่คำตอบที่เกี่ยวข้องกับ Eclipse ดั้งเดิม) ไม่เพียงพอที่จะเปลี่ยนขนาดและเริ่มโปรแกรมจำลอง (แม้เมื่อใช้Cold Boot Now ) กุญแจสำคัญคือคำสั่งWipe Data ขอบคุณ!
Alex Vang

42

เพิ่มสิ่งต่อไปนี้ใน avd config.ini

disk.dataPartition.size=1024MB

แจ้งให้เราทราบว่าสิ่งนี้เหมาะกับคุณหรือไม่

ฉันเพิ่มในบรรทัด เพิ่มการกำหนดค่าขนาดพาร์ติชันข้อมูล
สกรีนช็อตของ AVD พื้นที่จัดเก็บเพิ่มขึ้น


ใช้งานไม่ได้กับฉันในภาพ 2.3 ฉันยังเห็นที่เก็บข้อมูลภายใน 128MB สำหรับแอพเท่านั้น
Matthias

1
ฉันสังเกตเห็นว่าใน UI "แก้ไข" ของ AVD Manager การพยายามตั้งค่านี้ด้วยตนเองจะรีเซ็ตเป็น 0 เสมออาจเป็นปัญหาที่เกี่ยวข้องหรือไม่ อาจจะไม่ควรตั้งค่าบน Android บางรุ่น?
Matthias

2
คุณต้องป้อนค่าเช่น1024MBเมื่อใช้ AVD Manager คุณไม่สามารถเข้า1024มาหาได้ซักพักสักครู่และฉันได้ยืนยันงานนี้แล้ว
รอนนี่

19

เรียกใช้ตัวจัดการ AVD

เลือก AVD ของคุณแล้วคลิกปุ่ม "รายละเอียด ... "

ในกรณีของฉันผู้จัดการ AVD ตั้งขนาดดิสก์เป็น

disk.dataPartition.size=4000M

ค่าที่ไม่ถูกต้องนี้ดิสก์มีขนาดประมาณ 500MB แม้จะมีการระบุหมายเลขไว้

ไปที่โฟลเดอร์ AVR โดยเส้นทางใน "รายละเอียด AVD"

แก้ไขใน config.ini เป็น

disk.dataPartition.size=4000MB

และลบไฟล์. img ทั้งหมด


2
นี่ควรเป็นคำตอบที่เลือก ใน Android Studio เวอร์ชันปัจจุบัน (3.0.1) คุณสมบัติการตั้งค่าการแก้ไขจะเป็นสีเทาหากคุณใช้ AVD ที่เปิดใช้งาน Google Play สิ่งนี้ใช้ได้ผล ฉันเปลี่ยนอุปกรณ์ทดสอบเป็น 2000MB จาก 400M ลบไฟล์ * .img และ * .qcow2 ทั้งหมด เช็ดข้อมูลใน AVD จากนั้นบูทขึ้นและมีพื้นที่เก็บข้อมูล 2,000 MB
MLindsay

@MLindsay ฉันเห็นด้วย
mwa91

แค่ FYI ฉันไม่ต้องลบ * .img หรือไฟล์อื่น ๆ แค่เปลี่ยนค่าใน config.ini ก็เพียงพอแล้ว
Mohib Sheth

ขอบคุณ! ทำงานสำหรับกรณีของฉัน
android_dev

10

ฉันกำลังติดตั้ง apk:

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

และฉันได้รับข้อความแสดงข้อผิดพลาดบอกฉันว่า

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

ใหญ่เกินไป การใช้เครื่องมือ sdk จาก r15 และ 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ไม่ทำงาน
Sufian

6

avd manager มีตัวเลือก "ขนาดที่เหมาะสมของพาร์ติชันระบบ" ลองตั้งค่าที่ 1024MB หรือใช้ตัวเลือกการเปิดใช้ commandline ที่ทำเช่นเดียวกัน

ถ้าฉันพบปัญหานี้กับอิมเมจ 4.0 emulator เท่านั้น


กันที่นี่ เมื่อคุณทำเช่นนั้นตรวจสอบให้แน่ใจว่าได้รีสตาร์ทเครื่องจำลองจากสถานะที่สะอาดและไม่ใช่จากภาพรวม
Manfred Moser

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

ไม่แน่ใจว่าทำไมสิ่งนี้ถึงได้รับการโหวต - ได้ผลสำหรับฉันแล้วจึงมีการโหวต :)
Robert

3

หากต้องการปรับขนาดที่เก็บของตัวจำลอง Android ใน Linux:

1) ติดตั้ง qemu

2) ค้นหาไดเรกทอรีที่มีไฟล์ img ของเครื่องเสมือน มีบางอย่างเช่น ~ / .android / avd / .avd และ cd อยู่

3) ปรับขนาดภาพ ext4: เช่นสำหรับการเติบโตจาก 500Mb ไปเป็น 4Gb execute

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) สำหรับภาพการ์ด sd ตัวเลือก: ช่วยเหลือข้อมูล:

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

ฉันเป็นผู้เริ่มต้น แต่ฉันมีปัญหานั้นในขณะที่เล่นกับ "Hello Grid View" ฉันพยายามใช้รูปถ่ายของตัวเองซึ่งมีขนาดใหญ่มากในขนาดไฟล์

การแก้ไขอย่างรวดเร็วคือการลดจำนวนรูปภาพซึ่งเป็นการลดขนาดของไฟล์ APK

แต่ฉันเดาคำถามติดตามของฉันสำหรับคนอื่น ๆ ที่เข้ามาที่เธรดนี้: ฉันจะแนบไฟล์ขนาดใหญ่เช่น JPG และ MP3 ไปยังแอพได้อย่างไร


2
ฉันคิดว่าฉันพบคำตอบได้ที่นี่: developer.android.com/guide/topics/resources/index.html ลองใช้ "ทรัพย์สิน" แทน "ทรัพยากร" สำหรับองค์ประกอบขนาดใหญ่ จากหน้า: ทรัพยากรเป็นส่วนสำคัญของแอปพลิเคชัน Android โดยทั่วไปองค์ประกอบเหล่านี้เป็นองค์ประกอบภายนอกที่คุณต้องการรวมและการอ้างอิงภายในแอปพลิเคชันของคุณเช่นรูปภาพ, เสียง, วิดีโอ, สตริงข้อความ, เลย์เอาต์, ธีม ฯลฯ แอปพลิเคชัน Android ทุกรายการจะมีไดเรกทอรีสำหรับทรัพยากร (res /) และไดเรกทอรีสำหรับ สินทรัพย์ (สินทรัพย์ /)

2

คุณต้องเพิ่มหน่วยความจำเสมือนของเครื่องจำลอง

วิธีเพิ่มหน่วยความจำเสมือนของอีมูเลเตอร์

emulator -avd "ชื่อตัวจำลอง" - ขนาดพาร์ติชัน 2024

หลังจากนั้นลองติดตั้ง apk ของคุณ


2

อัปเดตการตั้งค่าของคุณใน AVD Manager และเริ่มอุปกรณ์โดยเปิดใช้งาน 'ล้างข้อมูลผู้ใช้' สิ่งนี้ใช้ได้สำหรับฉัน


1
ในอินเทอร์เฟซ AVD ใหม่คลิกขวาบนบรรทัดอีมูเลเตอร์แล้วเลือกล้างข้อมูลผู้ใช้หลังจากที่คุณเปลี่ยนที่เก็บข้อมูลภายใน
Tiago Zortéa De Conto

1

ฉันเดาคุณควรรีสตาร์ทอีมูเลเตอร์ด้วย "emulator -wipe-data -avd YourAvdName" หรือทำเครื่องหมาย "Wipe User Data" ในการกำหนดค่าการรันหากคุณใช้ Eclipse

ฉันกำลังเผชิญกับปัญหาเดียวกันในขณะนี้


0

ครั้งเดียวที่ฉันเห็นสิ่งนี้เกิดขึ้นมันก็คือเมื่อระบบไฟล์โฮสต์ออกจากพื้นที่ คุณมีพื้นที่ว่างมากในระบบไฟล์ที่จัดเก็บระบบไฟล์ของ VM หรือไม่?


ฉันมีพื้นที่มากมายในฮาร์ดดิสก์ของฉันฟรี 13GB
Pentium10

0

มันไม่ใช่คำตอบที่เหมาะสม defenetly แต่มันเป็นคำใบ้เล็ก ๆ น้อย ๆ

หากคุณต้องการใช้ประโยชน์จากไฟล์คงที่ในแอพของคุณ คุณควรทำให้พวกเขาเป็นทรัพยากรหรือเป็นสินทรัพย์ แต่ถ้าคุณมีความกังวลเกี่ยวกับหน่วยความจำต้องการให้ APK ของคุณมีขนาดเล็กคุณต้องเปลี่ยนการออกแบบแอพในแบบที่

แทนที่จะวางไว้เป็นแหล่งข้อมูลในขณะที่เรียกใช้แอพของคุณ (หลังการติดตั้ง) คุณสามารถนำไฟล์ต่าง ๆ ไปใช้เพื่อป้องกันไฟล์ต่าง ๆ เนื่องจากผู้ใช้อาจไม่เก็บไฟล์ที่คุณต้องการจาก SD Card สำหรับ U นี้สามารถใช้ ContentResolver เพื่อรับไฟล์เสียง, ไฟล์ภาพตามที่ผู้ใช้เลือก

ด้วยวิธีนี้คุณสามารถมอบคุณสมบัติอื่นให้กับผู้ใช้เช่นเขาสามารถโหลดไฟล์เสียง / ภาพไปยังแอพได้ตามต้องการ


0

คุณสามารถเริ่มต้นได้เมื่อเลือกหนึ่งรายการจากต้นไม้ซ้าย "อุปกรณ์เสมือน" ในกล่องโต้ตอบตัวจัดการ AVD บนแพลตฟอร์มของ eclipse UI เริ่มต้นมีตัวเลือก "ล้างข้อมูลผู้ใช้"


0

วิธีการต่อไปนี้ได้ผลสำหรับฉัน

  1. นำทางไปยังโฟลเดอร์ SDK / tools ของ Android ในหน้าต่างเทอร์มินัล (ในกรณีที่คุณไม่ได้เพิ่มพา ธ )

  2. ตรวจสอบให้แน่ใจว่าอุปกรณ์เสมือนที่คุณวางแผนจะล้างนั้นปิดอยู่

  3. รันคำสั่ง "./emulator -wipe-data -avd YourAvdName" โดยที่ YourAvdName เป็นชื่อของอุปกรณ์ Android เสมือนของคุณ


-2

ลองเลือกโครงการ -> ทำความสะอาด ทำความสะอาดง่ายอาจแก้ไขได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.