2011-08-20 228 views
26

今天在我的設備上安裝應用程序時,出現「安裝錯誤:INSTALL_FAILED_INSUFFICIENT_STORAGE」錯誤。 它工作正常,直到昨天,今天只有即時通訊面臨這個問題。我刪除了一些SD卡上的文件,但仍然面臨這個問題。我相信這不是SD卡上空間的問題。任何人都可以建議如何解決這個問題。Android:安裝錯誤:INSTALL_FAILED_INSUFFICIENT_STORAGE

--nehatha

+0

你確定它是關於SD卡上的空間比內存大嗎? – Snicolas

+1

繼續並將某些應用程序從內部存儲器移動到SD卡或刪除某些佔用內部存儲器的應用程序。 – PravinCG

+0

看到這篇文章 http:// stackoverflow。com/questions/2239330/how-to-increase-storage-for-android-emulator-install-failed-insufficient-storag – Noel

回答

72

它得到了具有android:installLocation="preferExternal"的清單文件的<manifest>標籤解決。

象下面這樣:

<?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"> 

謝謝

+0

感謝您!此外,這個線程可能對使用上述解決方案的人有用:http://stackoverflow.com/questions/3213427/not-able-to-use-new-resource-identifiers-in-android-with-targetsdkversion-define –

+0

我在清單文件中得到了這個msg: - > error:沒有發現屬性'installLocation'在包'android'中的資源標識符請幫助 –

+0

問題現在修復....它似乎這個解決方案與minsdk = 8 感謝:) –

4

在我的情況下,使用明顯的標記沒有工作的解決方案,因爲沒有該標記的Android資源。

什麼工作只是在手機上卸載應用程序。還有我同時安裝的其他幾個版本。

+0

以上解決方案對我無效。這一個工作! – Manishankar

-3

此問題是因爲您的設備沒有更多的空間來安裝應用程序。

0

在星系設備:

在我的情況我發現,存儲 - >其它文件 - > CasheData被佔用了8GB,消耗整個內部存儲器。清空文件夾並釋放內存。

重啓設備後,沒有任何錯誤

7

你需要做兩件事情之後,這個錯誤將得到解決安裝的應用程序。

  1. 在您的AndroidManifest.xml文件中,在清單標記中添加android:installLocation =「preferExternal」。

    <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. 更重要的是,清除設備中的緩存數據。轉到設置 - >存儲 - >點擊緩存數據。這將清除緩存並釋放空間。

  3. 重新連接設備,清理項目並再次在設備上運行。該項目現在將在您的設備上運行。

0

以我爲例,我是在模擬器上運行,我的應用程序是在本地代碼崩潰由於accessing a stale local reference。這很可能是無關緊要的,但我提到它是在崩潰導致問題的情況下。基於與INSTALL_FAILED_INSUFFICIENT_STORAGE的建議,我現在在使用PM卸載這些崩潰後我的申請勤奮:

adb shell pm uninstall <my-application-package> 

大多數時候,這似乎重置仿真器的狀態,這樣我可以上傳/安裝/下次啓動。

我有一段短暫非常大(〜60Mb)的.APK經驗。因爲模擬器真的需要APK的3倍大小(1x上傳到/ data/local/tmp,2x保持安裝的-1.apk和-2。apk拷貝到/ data/app),當我的模擬器內部存儲有限時,這是一個問題。

我也使它成爲一個習慣,在這些情況下刪除默認的包在/ data/app中

adb shell rm /data/app/* 

,並刪除我可能已經被推到/數據/本地/ tmp中的任何殘留文件

adb shell rm /data/local/tmp/* 

即使採取了這些措施,儘管表面上有足夠的可用空間,但我仍經歷了INSTALL_FAILED_INSUFFICIENT_STORAGE(由dudf報告)。所以,似乎有一些殘留的配置文件。在這些情況下,我必須使用AVD從仿真器映像中輸入Wipe Data

0

在我的情況下關於INSTALL_FAILED_INSUFFICIENT_STORAGE。 我不得不去編輯我的設備下我的設備的AVD內部和SD存儲大小Android Virtual Deviece Manager。我增加了內部存儲從200到2000,並且SD卡也增加到了2000.並且在我的AndroidManifest.xml文件中添加了android:installLocation="preferExternal"

它對我很有效。

1

我無法卸載應用程序,因爲它沒有出現在應用程序列表中。 我不得不刪除庫文件從 /data/app-lib

然後再次安裝該應用程序。 ADB安裝

2

我試過很多東西從這個線程和其他許多人,但我的情況下,什麼都不會解決它會保持與該消息突然出現,對我這是什麼做的是去應用程序>谷歌播放服務和清除那裏的數據。

我在GooglePlayServices 7.3.29並且正在調試這個老的Galaxy S1

3

解決了我的問題。問題是,我已經設置了一套通過我的根奇巧4.4.2的手機上,亞行同時安裝位置,把在SD卡我的應用程序:

adb shell 
pm set-install-location 2 

說卡是便宜又失敗了。即使我將默認位置設置爲內置SD卡,即使我刪除了「損壞的」(便宜且無用的)SD卡,我現在也可以安裝任何應用程序......但現在一切正常,解決方案是運行

pm set-install-location 2 
+0

不幸的是,當我運行這個命令時,我看到'Error:java.lang.SecurityException:Package android不屬於2000'。在Xperia Z2上運行,不帶根的Android 5.0。 – Crummy

0

我的問題是,我設置應用程序位置外部SD卡通過外殼在ADB後,我的SD卡死亡。即使它不再安裝,並且按設置屏幕,默認位置是內部卡,我的應用程序不會安裝。我不得不通過shell重置默認位置才能使其工作。請參閱我的回答Android: Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

0

當我得到這個錯誤試圖安裝到SD卡並沒有爲我工作,我使用HTC手機,但從手機刪除一些應用程序的工作。我認爲手機在內部存儲器上需要一些空間,而這個空間的大小可能因手機而異。

0

我正在使用Cordova進行Android和iPhone開發。經過4個月的發展,這個錯誤已經出現了大約10個不同的時間。

什麼工作對我來說

*#9900# - #方法1 起初,我所要做的就是......

  1. 手撥*#9900#;然後選擇刪除DUMPSTATE。但偶爾幾周後,我仍然有錯誤。
  2. 清除內存...
    • 長按Home鍵
    • 單擊RAM BTTN _新聞清除內存BTTN在底部
  3. 卸載我的應用程序。 現在沒有更多的錯誤。好極了!!!

但今天,上面的方法#1沒有奏效。所以我...

方法2 - 刪除數據下載版

  1. 我在下載文件夾中刪除一切,... 現在還沒有更多的錯誤。好極了!!!

謝謝,並希望這有助於!

0

也許這可以幫助你......

  1. 檢查設置>存儲>檢查較受歡迎的安裝位置*

*如果可移動SD卡。請將其更改爲內部設備存儲。因爲,也許你的SD卡有問題。

希望它有助於

0

當外部存儲不可用,它不是關於存儲空間,重啓真實設備修正了這個錯誤。

我的日誌顯示這些行:

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) 

主要原因似乎在PackageManagerService除外:

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

對於不共享的用戶未安裝的用戶應用程序,在Settings使用的代碼是:

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); 
    } ... 
} 

所以有一些問題m與removeUserIdLPw邏輯或卸載不調用它來釋放應用程序的用戶ID,這需要一些詳細的卸載日誌,我目前沒有。