2011-08-20 40 views
26

Tôi nhận được lỗi "Lỗi cài đặt: INSTALL_FAILED_INSUFFICIENT_STORAGE" trong khi cài đặt ứng dụng trên thiết bị của tôi ngay hôm nay. Nó hoạt động tốt cho đến ngày hôm qua, hôm nay chỉ im đối mặt với vấn đề này. Tôi đã xóa một số tệp trên thẻ SD của mình nhưng vẫn gặp sự cố. Tôi chắc chắn nó không phải là vấn đề với không gian trên thẻ SD. Ai có thể đề nghị cách giải quyết vấn đề này.Android: Lỗi cài đặt: INSTALL_FAILED_INSUFFICIENT_STORAGE

--nehatha

+0

Bạn có chắc chắn về khoảng trống trên thẻ SD nhiều hơn bộ nhớ trong không? – Snicolas

+1

tiếp tục và di chuyển một số ứng dụng từ bộ nhớ trong sang thẻ SD hoặc xóa một số ứng dụng đang lưu trữ bộ nhớ trong. – PravinCG

+0

Xem bài đăng này http: // stackoverflow.com/questions/2239330/how-to-tăng-lưu trữ-cho-android-emulator-install-fail-không đủ-storag – Noel

Trả lời

72

Nó đã được giải quyết bằng cách android:installLocation="preferExternal" cho <manifest> tag của file manifest.

Giống như dưới đây:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="bros.imaq.demilic" 
    android:versionCode="1" 
    android:versionName="1.0" 
    android:installLocation="preferExternal"> 

Cảm ơn bạn

+0

Cảm ơn vì điều này! Ngoài ra, chuỗi này có thể hữu ích cho những người sử dụng giải pháp trên: http://stackoverflow.com/questions/3213427/not-able-to-use-new-resource-identifiers-in-android-with-targetsdkversion-define –

+0

tôi nhận được thông điệp này trong tệp kê khai: -> lỗi: Không tìm thấy mã định danh tài nguyên cho thuộc tính 'installLocation' trong gói 'android' Pls giúp –

+0

Sự cố đã được khắc phục .... có vẻ như giải pháp này hoạt động với minsdk = 8 Cảm ơn :) –

4

Trong trường hợp của tôi là giải pháp sử dụng thẻ manifest đã không làm việc, như không có tài nguyên Android cho thẻ đó.

Tác phẩm nào đã chỉ đơn giản là gỡ cài đặt ứng dụng trên điện thoại. Và vài phiên bản khác tôi đã cài đặt đồng thời.

+0

Các giải pháp trên không hiệu quả với tôi. Điều này đã làm việc! – Manishankar

-3

Vấn đề này là do thiết bị của bạn không có nhiều không gian hơn để cài đặt ứng dụng.

0

Trên điện thoại galaxy:

Trong trường hợp của tôi, tôi phát hiện ra rằng Storage-> Miscellaneous files-> CasheData đang bận rộn với 8GB, tiêu thụ toàn bộ bộ nhớ trong. Làm trống thư mục và giải phóng bộ nhớ.

Sau khi khởi động lại thiết bị, các ứng dụng được cài đặt mà không cần bất kỳ lỗi

7

Bạn cần phải làm hai việc sau đó lỗi này sẽ được giải quyết.

  1. Trong tệp AndroidManifest.xml của bạn thêm android: installLocation = "preferExternal" vào thẻ kê khai của bạn.

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.packagename.appname" 
    android:versionCode="1" 
    android:versionName="1.0" 
    android:installLocation="preferExternal"> 
    
  2. Quan trọng hơn, xóa dữ liệu bộ nhớ cache trong thiết bị của bạn. Cài đặt Goto -> lưu trữ -> nhấp vào dữ liệu được lưu trong bộ nhớ cache. Thao tác này sẽ xóa bộ nhớ cache và giải phóng dung lượng.

  3. Kết nối lại thiết bị của bạn, xóa sạch dự án và chạy lại trên thiết bị. Dự án sẽ chạy trên thiết bị của bạn.

0

Trong trường hợp của tôi, tôi đang chạy trên trình giả lập và ứng dụng của tôi bị lỗi do accessing a stale local reference trong mã gốc. Điều đó rất có thể không liên quan nhưng tôi đề cập đến nó trong trường hợp các sự cố đóng góp cho vấn đề. Dựa trên lời khuyên liên quan đến INSTALL_FAILED_INSUFFICIENT_STORAGE, Tôi bây giờ siêng năng trong việc sử dụng PM để gỡ bỏ cài đặt ứng dụng của tôi sau những tai nạn:

adb shell pm uninstall <my-application-package> 

Hầu hết thời gian, điều này dường như để thiết lập lại tình trạng của giả lập vì vậy mà tôi có thể tải lên/cài đặt/khởi động lần sau.

Tôi đã có trải nghiệm với .APK ngắn gọn rất lớn (~ 60Mb). Bởi vì trình mô phỏng thực sự cần 3x kích thước của APK có sẵn (1x để tải lên/data/local/tmp, 2x để giữ cho -1.apk và -2 được cài đặt.apk bản sao trong/dữ liệu/ứng dụng), đây là một vấn đề khi giả lập của tôi đã giới hạn lưu trữ nội bộ.

Tôi cũng làm cho nó thành một thói quen trong những trường hợp này để xóa các gói mặc định trong/data/app

adb shell rm /data/app/* 

Và để xóa bất kỳ tập tin còn sót lại tôi có thể đẩy lên/data/local/tmp

adb shell rm /data/local/tmp/* 

Ngay cả với các biện pháp này, tôi đã trải nghiệm INSTALL_FAILED_INSUFFICIENT_STORAGE mặc dù dường như có đủ không gian trống (như được báo cáo bởi dudf). Vì vậy, có vẻ như có một số cấu hình còn lại cruft. Trong những trường hợp này, tôi phải Wipe Data từ hình ảnh mô phỏng bằng AVD.

0

Trong trường hợp của tôi liên quan đến INSTALL_FAILED_INSUFFICIENT_STORAGE. Tôi phải đi và chỉnh sửa kích thước Bộ nhớ trong và SD AVD của thiết bị của tôi theo Trình quản lý thiết bị Android ảo. Tôi tăng Dung lượng lưu trữ nội bộ từ 200 lên 2000 và Thẻ SD cũng đến năm 2000. Và thêm android:installLocation="preferExternal" vào số AndroidManifest.xml tệp

Và nó đã hiệu quả đối với tôi.

1

Tôi không thể gỡ cài đặt ứng dụng vì nó không có trong danh sách ứng dụng. Tôi phải xóa tệp thư viện khỏi /data/app-lib

rồi cài đặt lại ứng dụng. adb cài đặt

2

tôi đã cố gắng rất nhiều điều từ chủ đề này và nhiều người khác nhưng trong trường hợp của tôi không có gì sẽ sửa chữa nó muốn giữ popping với thông điệp rằng, đối với tôi những gì nó đã làm nó đã đi đến Ứng dụng> Dịch vụ Google Play và xóa dữ liệu ở đó.

Tôi đang ở GooglePlayServices 7.3.29 và đang gỡ lỗi trên Galaxy S1

3

khắc phục sự cố của tôi. vấn đề là tôi đã thiết lập các thiết lập vị trí cài đặt thông qua adb trên bắt nguồn KitKat 4.4.2 điện thoại của tôi cùng một lúc, để đưa ứng dụng của tôi trên một thẻ nhớ SD:

adb shell 
pm set-install-location 2 

Nói thẻ là giá rẻ và thất bại. ngay cả khi tôi đặt vị trí mặc định thành thẻ SD bên trong, ngay cả khi tôi đã xóa thẻ SD "bị hỏng" (rẻ và vô dụng), giờ đây tôi có thể cài đặt không có ứng dụng nào ... nhưng tất cả đều tốt, giải pháp là chạy

pm set-install-location 2 
+0

Tôi thấy 'Lỗi: java.lang.SecurityException: Gói android không thuộc về 2000' khi tôi chạy lệnh này, thật không may. Chạy trên Xperia Z2, không bắt nguồn từ Android 5.0. – Crummy

0

vấn đề của tôi là tôi đặt vị trí ứng dụng thành thẻ SD bên ngoài qua vỏ trên adb sau khi thẻ sd của tôi bị chết. mặc dù nó không còn được gắn kết và trên màn hình Cài đặt, vị trí mặc định là thẻ nội bộ, ứng dụng của tôi sẽ không cài đặt. tôi đã phải thiết lập lại vị trí mặc định thông qua trình bao để làm cho nó hoạt động. xem câu trả lời của tôi tại Android: Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE.

0

Khi tôi gặp lỗi này, việc cố gắng Cài đặt vào thẻ SD không hoạt động đối với tôi và tôi sử dụng điện thoại HTC nhưng xóa một số ứng dụng tạo thành điện thoại hoạt động. Tôi nghĩ rằng điện thoại cần một số dung lượng bộ nhớ trong và dung lượng này có thể thay đổi từ điện thoại sang điện thoại.

0

Tôi đang sử dụng Cordova để phát triển Android và iPhone của mình. Sau 4 tháng phát triển, lỗi này xuất hiện khoảng 10 lần khác nhau.

GÌ làm việc cho tôi

* # 9900 # - PHƯƠNG PHÁP # 1 Lúc đầu, tất cả tôi phải làm là ...

  1. tay quay số * # 9900 #; sau đó chọn xóa DUMPSTATE. Nhưng sau một vài tuần làm điều đó nhân dịp, tôi vẫn có lỗi.
  2. Xóa RAM ...
    • DÀI BÁO CHÍ NHÀ NÚT
    • nhấp vào RAM BTTN _ BÁO CHÍ Rõ ràng Memory BTTN ở phía dưới
  3. Gỡ ứng dụng của tôi. NGAY BÂY GIỜ KHÔNG L ERI. YAY !!!

Nhưng hôm nay, Phương pháp số 1 ở trên không hoạt động. Vì vậy, tôi ...

PHƯƠNG PHÁP # 2 - xóa dữ liệu trong DOWNLOADS

  1. Tôi đã xóa tất cả mọi thứ trong thư mục Downloads, và ... LỖI VỚI DOANH NGHIỆP NO MORE. YAY !!!

Cảm ơn và hy vọng điều này sẽ hữu ích!

0

có lẽ đây có thể giúp bạn ...

  1. thiết lập kiểm tra> lưu trữ> kiểm tra nghỉ vị trí cài đặt *

* nếu SD Card Removable. hãy thay đổi nó thành bộ nhớ trong của thiết bị. bởi vì, có thể Thẻ SD của bạn có vấn đề.

hy vọng nó sẽ giúp

0

Khi lưu trữ bên ngoài không có sẵn và nó không phải về không gian lưu trữ, khởi động lại thiết bị thực sửa lỗi này.

log của tôi cho thấy những dòng này:

PackageManager: Package ... could not be assigned a valid uid 
PackageManager: package setting is null 
PackageManager: Skipping remove dir for ...(user:0, appId:null) 
PackageManager: Package couldn't be installed in /data/app/... 
PackageManager: com.android.server.pm.PackageManagerException: Creating application package ... failed 
PackageManager:  at com.android.server.pm.PackageManagerService.scanPackageDirtyLI(PackageManagerService.java:10630) 

nguyên nhân chính vẻ như ngoại lệ trong PackageManagerService:

pkgSetting = mSettings.getPackageLPw(...); 
    if (pkgSetting == null) { 
     throw new PackageManagerException(INSTALL_FAILED_INSUFFICIENT_STORAGE, 
       "Creating application package " + pkg.packageName + " failed"); 
    } 

Đối với một ứng dụng người dùng không cài đặt mà không cần người dùng chia sẻ, sử dụng mã trong Settings là:

private PackageSetting getPackageLPw(...) { 
    // Assign new user id 
    p.appId = newUserIdLPw(p); 
    if (p.appId < 0) { 
     PackageManagerService.reportSettingsProblem(Log.WARN, 
       "Package " + name + " could not be assigned a valid uid"); 
     return null; 
    } 
} 
// Returns -1 if we could not find an available UserId to assign 
private int newUserIdLPw(Object obj) { 
    // None left? 
    if (N > (Process.LAST_APPLICATION_UID-Process.FIRST_APPLICATION_UID)) { 
     return -1; 
    } 
} 

private void removeUserIdLPw(int uid) { 
    if (uid >= Process.FIRST_APPLICATION_UID) { 
     final int N = mUserIds.size(); 
     final int index = uid - Process.FIRST_APPLICATION_UID; 
     if (index < N) mUserIds.set(index, null); 
    } ... 
} 

Vì vậy, có một số m với logic removeUserIdLPw hoặc gỡ cài đặt không gọi nó là id người dùng ứng dụng miễn phí, cần một số nhật ký gỡ cài đặt chi tiết mà tôi không có tại thời điểm này.