今日、デバイスにアプリケーションをインストール中に「インストールエラー:INSTALL_FAILED_INSUFFICIENT_STORAGE」エラーが表示されます。昨日まで問題なく動作しており、今日はこの問題に直面しているだけです。 SDカードからいくつかのファイルを削除しましたが、まだ問題に直面しています。私はそれがSDカード上のスペースの問題ではないと確信しています。誰もこれを解決する方法を提案できます。
-ネハサ
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">
ありがとうございました
このエラーを解決するには、2つのことを行う必要があります。
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">
さらに重要なことは、デバイスのキャッシュデータをクリアすることです。設定に移動->ストレージ->キャッシュデータをクリックします。これにより、キャッシュがクリアされ、スペースが解放されます。
デバイスを再接続し、プロジェクトをクリーンアップして、デバイスで再度実行します。これで、プロジェクトがデバイスで実行されます。
私の場合、マニフェストタグを使用したソリューションは、そのタグのAndroidリソースがなかったため、機能しませんでした。
うまくいったのは、電話でアプリをアンインストールするだけでした。そして、私が同時にインストールした他のいくつかのバージョン。
私の問題を修正しました。問題は、ルート化されたKitKat 4.4.2電話機のadbを介してインストール場所を一度に設定して、アプリをSDカードに配置していたことです。
adb Shell
pm set-install-location 2
このカードは安くて失敗しました。デフォルトの場所を内部SDカードに設定した場合でも、「破損した」(安価で役に立たない)SDカードを取り外しても、アプリをインストールできませんでしたが...
pm set-install-location 2
私はこのスレッドと他の多くのことから多くのことを試しましたが、私の場合はそのメッセージでポップアップし続けるでしょう、私にとってはそれが何だったのですかアプリケーション> Google Play Servicesに行き、データがあります。
私はGooglePlayServices 7.3.29にいて、この古いGalaxy S1でデバッグしていました
私の場合、INSTALL_FAILED_INSUFFICIENT_STORAGEに関してです。 Android Virtual Deviece ManagerでデバイスのAVD内部およびSDストレージサイズを編集する必要がありました。内部ストレージを200から2000に増やし、SDカードも2000に増やします。そしてAndroid:installLocation="preferExternal"
私のAndroidManifest.xml
ファイル
そしてそれは私のために働いた。
私の場合、エミュレータで実行していて、ネイティブコードの 古いローカル参照にアクセス が原因でアプリがクラッシュしていました。これはおそらく無関係ですが、クラッシュが問題の一因となった場合に言及します。 INSTALL_FAILED_INSUFFICIENT_STORAGE に関連するアドバイスに基づき、これらのクラッシュ後にアプリケーションをアンインストールするためにPMを使用することに熱心に取り組んでいます。
adb Shell pm uninstall <my-application-package>
ほとんどの場合、これによりエミュレータの状態がリセットされ、次回アップロード/インストール/起動できるようになります。
一時的に非常に大きい(〜60Mb).APKの経験がありました。エミュレータには実際に利用可能なAPKの3倍のサイズ(/ data/local/tmpにアップロードするために1x、インストール済みの-1.apkおよび-2.apkコピーを/ data/appに保持するために2x)が必要なため、これは問題でしたエミュレータの内部ストレージが限られていたとき。
これらのケースでは、/ data/appのデフォルトパッケージを削除することも習慣にします
adb Shell rm /data/app/*
そして、残っているファイルを削除するために、/ data/local/tmpにプッシュしたかもしれません
adb Shell rm /data/local/tmp/*
これらの措置を講じても、明らかに十分な空き領域があるにもかかわらず、INSTALL_FAILED_INSUFFICIENT_STORAGEを経験しました(du
およびdf
で報告されています)。そのため、いくつかの残留構成の残骸があるようです。これらの場合、私はWipe Data
AVDを使用したエミュレータイメージから。
アプリがアプリリストにないため、アプリをアンインストールできませんでした。/data/app-libからライブラリファイルを削除する必要がありました
その後、アプリを再度インストールしました。 adbインストール
多分これはあなたを助けることができる...
*リムーバブルSDカードの場合。内部デバイスストレージに変更してください。おそらくあなたのSDカードに問題があるからです。
それが役に立てば幸い
外部ストレージが利用できず、ストレージスペースが不足している場合、実際のデバイスを再起動すると、このエラーが修正されます。
私のログはこれらの行を示します:
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");
}
共有ユーザーのないインストールされていないユーザーアプリケーションの場合、 設定 で使用されるコードは次のとおりです。
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);
} ...
}
そのため、removeUserIdLPwロジックまたはアンインストールでアプリのユーザーIDを解放しないという問題があり、現時点では詳細なアンインストールログが必要です。
このエラーが発生したとき、SDカードへのインストールを試みてもうまくいきませんでした。htc電話を使用しましたが、一部のアプリを削除して電話が機能しました。電話には内部メモリにある程度のスペースが必要で、このスペースの量は電話ごとに異なる場合があります。
Galaxyデバイスの場合:
私の場合、「ストレージ」->「その他のファイル」->「CasheData」は8GBで占められており、内部メモリ全体を消費していることがわかりました。フォルダを空にして、メモリを解放します。
デバイスを再起動した後、アプリケーションはエラーなしでインストールされました
AndroidとiPhone開発にCordovaを使用しています。開発の4か月後、このエラーは約10回発生しました。
私のために働いた
*#9900#-方法#1最初は、私がしなければならなかったことは...
しかし、今日、上記の方法1は機能しませんでした。だから私は...
方法#2-ダウンロードのデータを削除する
ありがとう、これが役立つことを願っています!
私の問題は、SDカードが死んだ後、adbのシェルを介してアプリの場所を外部SDカードに設定することでした。マウントされなくなり、[設定]画面ではデフォルトの場所は内部カードでしたが、アプリはインストールされませんでした。私はそれを動作させるためにシェルを介してデフォルトの場所をリセットする必要がありました。 Android:インストールエラー:INSTALL_FAILED_INSUFFICIENT_STORAGE で私の回答を参照してください。