Làm cách nào để tăng dung lượng cho Trình giả lập Android? (INSTALL_FAILED_INSUFFICIENT_STORAGE)


152

Đôi khi tôi nhận được điều này (không thường xuyên) cho một trong các dự án của tôi, chỉ một vài lớp
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

Làm cách nào để tăng dung lượng của trình giả lập?


2
Tôi thấy lỗi này khá thường xuyên, ngay cả khi thiết bị được cài đặt có nhiều dung lượng lưu trữ. Chỉ cần lưu ý rằng đôi khi bạn thấy lỗi, thông báo lỗi nói không thực sự đúng.
Lance Nanek

1
@ Pentinum10 tôi đang gặp lỗi tương tự trên cả 1.5 và 2.2, hãy kiểm tra câu hỏi này khi cần trợ giúp của bạn: stackoverflow.com/questions35384297/ Hãy , hãy giúp tôi và bắt tôi ra
Paresh Mayani

Câu trả lời:


127

Cập nhật

Câu trả lời này là, khi tôi viết bài này, gần tám tuổi và khoảng năm năm cũ. Nhưng nó vẫn (như tôi viết này) câu trả lời "được chấp nhận", bởi vì nó đã trả lời câu hỏi khi nó được hỏi.

Câu trả lời mới hơn, áp dụng cho các công cụ Android Studio mới hơn, có thể được tìm thấy ở đây: https://stackoverflow.com/a353828035/62 - đó là một câu trả lời tuyệt vời với ảnh chụp màn hình. Nếu bạn đang sử dụng Android Studio, hãy bỏ qua câu trả lời Eclipse bên dưới.

Câu trả lời gốc dựa trên Eclipse

Tôi đã tìm kiếm câu trả lời cho câu hỏi này, và không hài lòng với câu trả lời trên. Nhưng sau đó tôi đã tìm thấy câu trả lời , vì vậy đây là để tham khảo trong tương lai:

Để tóm tắt (và làm rõ), trong Eclipse, đi đến "Cấu hình gỡ lỗi". Bạn có thể thấy rằng trong trình đơn thả xuống dưới biểu tượng "gỡ lỗi". Chọn "mục tiêu" và chọn mục tiêu giả lập ưa thích để khởi chạy. Sau đó, trong "tùy chọn dòng lệnh giả lập bổ sung", hãy thêm vào đây:

kích thước phân vùng 1024

Sau đó, ĐÓNG trình giả lập (và xóa bất kỳ thiết bị nào) và nhấp vào biểu tượng gỡ lỗi, sẽ khởi chạy trình giả lập ưa thích mà bạn đã chọn. Điều này rất quan trọng: Eclipse cần khởi chạy trình gỡ lỗi chứ không phải AVD.

Điều đó đã khắc phục vấn đề cho tôi.


8
Lưu ý rằng "kích thước phân vùng" tính bằng megabyte và thông thường để cài đặt APK, bạn cần ít nhất gấp đôi dung lượng đĩa so với kích thước của APK.
Christopher Orr

5
Một lưu ý khác cần thực hiện: Bạn phải nhấp chuột phải vào dự án bạn muốn chạy trong nhật thực -> Chạy-> Chạy cấu hình-> Chọn dự án-> Mục tiêu -> cuộn xuống-> thêm kích thước liên kết 1024 để thêm tùy chọn Em-> sau đó chạy dự án từ nhật thực
SpoiledTechie.com

4
Google nên thêm thông số thuộc tính rõ ràng này cho Android 3.2 hoặc 4.0. Khắc phục plugin AVD Eclipse chết tiệt
peter_pilgrim

tìm thấy tốt đẹp ... thực sự nên được phơi bày thông qua các công cụ ADT. Trình giả lập ICS chỉ có 60mb theo mặc định! không thể cài đặt APK trên thứ ngoài hộp.
ddewaele

1
Đối với bất cứ ai nhìn vào câu trả lời được chấp nhận này nhiều năm sau như tôi đã làm, có lẽ bạn muốn xem stackoverflow.com/a353828035/62 thay thế.
Liron Yahdav

90

Trên Android Studio

Mở Trình quản lý AVD.

nhập mô tả hình ảnh ở đây

Nhấp vào Chỉnh sửa Biểu tượng để chỉnh sửa AVD.

nhập mô tả hình ảnh ở đây

Nhấp vào Hiển thị cài đặt nâng cao.

nhập mô tả hình ảnh ở đây

Thay đổi kích thước Bộ nhớ trong, Ram, Thẻ SD nếu cần. Nhấp vào Kết thúc.

nhập mô tả hình ảnh ở đây

Xác nhận cửa sổ bật lên bằng cách nhấp vào có.

nhập mô tả hình ảnh ở đây

Xóa dữ liệu trên AVD và xác nhận cửa sổ bật lên bằng cách nhấp vào có.

nhập mô tả hình ảnh ở đây

Quan trọng: Sau khi tăng kích thước, nếu nó không tự động yêu cầu bạn xóa dữ liệu, bạn phải thực hiện thủ công bằng cách mở menu kéo xuống của AVD và chọn Xóa dữ liệu.

nhập mô tả hình ảnh ở đây

Bây giờ bắt đầu và sử dụng Trình giả lập của bạn với dung lượng tăng lên.


7
Thay đổi "Bộ nhớ trong" không giúp được gì cho tôi, trước hoặc sau khi tạo AVD. Nó luôn đi kèm với 300MB và cảnh báo không gian thấp.
Travis Christian

3
Bạn đã xóa dữ liệu từ menu thả xuống trong trình quản lý AVD sau khi bạn thay đổi kích thước.
Cijo 15/03/2016

1
Tôi đã xóa AVD, nhưng nó cũng xảy ra với những hình ảnh chưa được cấu hình mới. Tôi đã tìm thấy trong một câu hỏi khác rằng đó là một vấn đề với các API nhất định <23.
Travis Christian

OMG - cảm ơn bạn vì điều này! Đó là giải pháp duy nhất mà tôi thấy có hiệu quả!
SammyK

2
Đây phải là câu trả lời được chấp nhận và là câu trả lời đầu tiên xuất hiện (không phải là câu trả lời liên quan đến Eclipse). Nó không đủ để thay đổi kích thước và khởi động trình giả lập (ngay cả khi sử dụng Cold Boot Now ). Khóa có vẻ là lệnh Xóa dữ liệu . Cảm ơn!
Alex Vang

42

Thêm phần sau vào config.ini avd

disk.dataPartition.size=1024MB

Hãy cho tôi biết nếu điều này cũng làm việc cho bạn.

Tôi đã thêm vào dòng Thêm cấu hình kích thước phân vùng dữ liệu
Ảnh chụp màn hình của không gian lưu trữ AVD đang được tăng lên


Không làm việc cho tôi trên một hình ảnh 2.3. Tôi vẫn chỉ thấy 128 MB dung lượng lưu trữ nội bộ có sẵn cho các ứng dụng.
Matthias

1
Tôi nhận thấy rằng trong Giao diện người dùng "Chỉnh sửa" của Trình quản lý AVD, cố gắng đặt giá trị này theo cách thủ công sẽ luôn đặt lại thành 0. Có lẽ là một vấn đề liên quan? Có lẽ nó không được thiết lập trên một số phiên bản Android?
Matthias

2
Bạn phải nhập một giá trị như 1024MBkhi sử dụng Trình quản lý AVD. Bạn không thể nhập 1024Took một chút để tìm hiểu điều đó và tôi đã xác nhận điều này hoạt động
Ronnie

19

Chạy Trình quản lý AVD

Chọn AVD của bạn và nhấp vào nút "Chi tiết ...".

Trong trường hợp của tôi, Trình quản lý AVD đặt kích thước đĩa là

disk.dataPartition.size=4000M

Điều này Giá trị không hợp lệ , đĩa xấp xỉ 500MB mặc dù số lượng được chỉ định.

Chuyển đến thư mục của AVR theo đường dẫn trong "Chi tiết AVD".

Chỉnh sửa nó trong config.ini thành

disk.dataPartition.size=4000MB

và loại bỏ tất cả các tập tin .img.


2
Đây phải là câu trả lời được lựa chọn. Trên các phiên bản hiện tại của Android Studio (3.0.1), thuộc tính cài đặt chỉnh sửa sẽ chuyển sang màu xám nếu bạn đang chạy AVD hỗ trợ Google Play. Điều này đã làm việc. Tôi đã thay đổi thiết bị thử nghiệm của mình thành 2000MB từ 400M, xóa tất cả các tệp * .img và * .qcow2. Xóa dữ liệu trên AVD. Sau đó khởi động nó lên và nó có 2000 MB dung lượng lưu trữ.
MLindsay

@MLindsay Tôi đồng ý
mwa91

Chỉ cần FYI, tôi không phải xóa * .img hoặc bất kỳ tệp nào khác. Chỉ cần thay đổi giá trị trong config.ini là đủ.
Mohib Sheth

Cảm ơn! Làm việc cho trường hợp của tôi.
android_dev

10

Tôi đang thực hiện cài đặt apk:

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

Và tôi đã nhận được một thông báo lỗi cho tôi biết rằng

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

quá lớn Sử dụng các công cụ sdk từ r15 và ADT 15 Tôi có thể sử dụng trình quản lý AVD để thao tác một số cài đặt trình giả lập hiện có của mình:

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

sau đó đi đến cửa sổ Thuộc tính phần cứng ngay bên dưới "Skin:" Tôi có thể chọn bằng Phần cứng: Nút mới 'Kích thước lý tưởng của phân vùng'. Tuy nhiên, tôi không thể đặt giá trị khác hơn là '0'. Không nản lòng, tôi đã đi đến thư mục $ {HOME} /. Android / avd của tôi Có một thư mục 'MyVm.avd'. Đi vào thư mục đó tôi tìm thấy một tập tin 'config.ini'. Có mục:

disk.dataPartition.size=0

Tôi đặt cái này thành:

disk.dataPartition.size=1024

.. sau đó quay lại Trình quản lý AVD, chọn MyVm, chọn 'Bắt ​​đầu', chọn xóa dữ liệu người dùng để giành được hộp thoại sau và có thể chạy và cài đặt.


Nó đã hoạt động tốt thời gian qua nhưng hôm nay tôi phải viết disk.dataPartition.size=1024MB, kể từ khi 10241024mkhông làm việc.
Sufian

6

Trình quản lý avd có tùy chọn "kích thước lý tưởng của phân vùng hệ thống", thử đặt cài đặt thành 1024MB hoặc sử dụng tùy chọn khởi chạy dòng lệnh tương tự.

fyi, tôi chỉ gặp phải vấn đề này với hình ảnh giả lập 4.0.


Tương tự ở đây. Khi bạn làm điều đó, đảm bảo khởi động lại trình giả lập từ trạng thái sạch và KHÔNG từ ảnh chụp nhanh.
Manfred Moser

6

Chỉ cần bắt đầu trình giả lập bằng dòng lệnh như sau:

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

Không chắc chắn tại sao điều này đã được bỏ phiếu xuống - làm việc cho tôi vì vậy có một cuộc bỏ phiếu lên. :)
Robert

3

Để thay đổi kích thước bộ nhớ của trình giả lập Android trong Linux:

1) cài đặt qemu

2) Xác định vị trí thư mục chứa các tệp img của máy ảo. Một cái gì đó như ~ / .android / avd / .avd và cd cho nó.

3) Thay đổi kích thước hình ảnh ext4: tức là để tăng từ 500Mb lên 4Gb thực thi

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

4) phát triển hệ thống tập tin:

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

5) Đối với hình ảnh thẻ sd, tùy chọn: cứu dữ liệu:

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

6) thay đổi kích thước hình ảnh từ 100Mb thành Gb:

qemu-img resize sdcard.img +3.9GB

7) tạo lại hệ thống tập tin:

mkfs.vfat sdcard.img

8) tùy chọn: khôi phục dữ liệu cũ:

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

2

Tôi là người mới bắt đầu, nhưng tôi gặp vấn đề đó khi chơi xung quanh với "Hello Grid View". Tôi đã cố gắng sử dụng những bức ảnh của riêng mình, tất cả đều có kích thước tệp rất lớn.

Cách khắc phục nhanh là giảm số lượng ảnh, do đó giảm kích thước tệp APK.

Nhưng, tôi đoán câu hỏi tiếp theo của tôi cho bất kỳ ai khác gặp phải chủ đề này là: Làm cách nào để đính kèm các tệp lớn như JPG và MP3 vào một ứng dụng và đảm bảo chúng lưu trên Thẻ SD để APK vẫn nhỏ?


2
Tôi nghĩ rằng tôi đã tìm thấy câu trả lời ở đây: developer.android.com/guide/topics/resource/index.html Thử sử dụng "tài sản" thay vì "tài nguyên" cho bất kỳ yếu tố lớn nào. Từ trang: Tài nguyên là một phần không thể thiếu của ứng dụng Android. Nói chung, đây là các yếu tố bên ngoài mà bạn muốn bao gồm và tham chiếu trong ứng dụng của mình, như hình ảnh, âm thanh, video, chuỗi văn bản, bố cục, chủ đề, v.v ... Mỗi ứng dụng Android đều chứa một thư mục cho tài nguyên (res /) và thư mục cho tài sản (tài sản /).

2

bạn cần tăng bộ nhớ ảo của trình giả lập

Cách tăng bộ nhớ ảo của trình giả lập

trình giả lập -avd "Tên trình giả lập" -partition-size 2024

sau đó thử cài đặt apk của bạn


2

Cập nhật cài đặt của bạn trong AVD Manager và khởi động thiết bị bằng cách bật 'Xóa dữ liệu người dùng'. Điều này làm việc cho tôi.


1
Trong giao diện AVD mới, nhấp chuột phải vào dòng giả lập, sau đó chọn xóa dữ liệu người dùng sau khi bạn thay đổi bộ nhớ trong.
Tiago Zortéa De Conto

1

Tôi đoán bạn nên khởi động lại trình giả lập với "trình giả lập -wipe-data -avd YourAvdName" hoặc kiểm tra "Xóa dữ liệu người dùng" trong cấu hình chạy nếu bạn đang sử dụng Eclipse.

Tôi đang đối mặt với cùng một vấn đề ngay bây giờ.


0

Lần duy nhất tôi thấy điều này xảy ra là khi hệ thống tập tin máy chủ cơ bản hết dung lượng. Bạn có nhiều không gian trống trên hệ thống tệp nơi lưu trữ hệ thống tệp của VM không?


Tôi có nhiều dung lượng trên đĩa cứng 13 GB miễn phí.
Pentium10

0

Nó chắc chắn không phải là một câu trả lời thích hợp, nhưng đó là một gợi ý nhỏ.

Nếu bạn muốn sử dụng các tệp tĩnh trong Ứng dụng của mình. Bạn nên đặt chúng dưới dạng tài nguyên hoặc tài sản. Nhưng, nếu bạn có vấn đề về bộ nhớ muốn giữ APK của mình nhỏ, thì bạn cần thay đổi thiết kế Ứng dụng của mình theo cách đó,

thay vì đặt chúng làm tài nguyên, trong khi chạy Ứng dụng của bạn (sau khi cài đặt), bạn có thể lấy các tệp (các tệp khác nhau một cách chắc chắn vì người dùng có thể không giữ các tệp bạn cần) từ Thẻ SD. Đối với điều này, U có thể sử dụng ContentResolver để lấy các tệp âm thanh, hình ảnh về lựa chọn của người dùng.

Với điều này, bạn có thể cung cấp cho người dùng một tính năng khác như anh ta có thể tải các tệp âm thanh / hình ảnh vào ứng dụng theo lựa chọn của riêng mình.


0

bạn có thể bắt đầu một mục khi chọn một mục từ "thiết bị ảo" của cây bên trái trong hộp thoại trình quản lý AVD trên nền tảng của nhật thực, giao diện người dùng bắt đầu có tùy chọn "Xóa dữ liệu người dùng"


0

Cách tiếp cận sau đây có hiệu quả với tôi

  1. Điều hướng đến thư mục SDK / công cụ Android của bạn trong cửa sổ terminal (trong trường hợp bạn không thêm đường dẫn cho nó)

  2. Đảm bảo thiết bị ảo bạn định dọn dẹp được tắt.

  3. Chạy lệnh "./emulator -wipe-data -avd YourAvdName" trong đó YourAvdName là tên của thiết bị Android ảo của bạn


-2

Hãy thử chọn dự án -> sạch sẽ. Một dọn dẹp đơn giản có thể sửa chữa nó lên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.