130

I try to deploy my app and sometimes get this error:

Failure 
[INSTALL_FAILED_CONTAINER_ERROR] 

I tried to google it but don't find what the error means or what it's caused by. I deploy via IDE (IntelliJ) the file gets copied to the device to the /data/local/tmp (unrooted Huawei Ideos, running 2.2), but the package manager doesn't seem to like it. Before installing the apk, I already removed the app from the device beforehand. I also made sure there was no old file under /data/local/tmp on the device. Still I'm getting this error now. The package should be signed with the debug key, since I deploy via IDE by 'running' the app.

$ pwd 
/data/local/tmp 
$ ls -l 
-rw-rw-rw- shell    shell    17257686 2011-04-21 20:31 
com.company.shop 
$ pm install -r com.company.shop 
        pkg: com.company.shop 
Failure [INSTALL_FAILED_CONTAINER_ERROR]

What does it mean and how to resolve it?

Edit/Update:

I can avoid the error when not allowing the app to be installed on sdcard, setting

android:installLocation="internalOnly"

in the manifest. It's ok for development, but for production, it's not really what I want - since my app is quite large with 17mb; therefore I prefer it to be on sdcard. How to ever be able to install it on the external memory without rooting (since this is the only way I could delete /mnt/secure/asec/smdl2tmp1.asec, which seems to be one solution as well).

4

15 に答える 15

224

インストール場所をから変更します

android:installLocation="preferExternal"

の中へ

android:installLocation="auto"

プロジェクトのAndroidManifest.xmlにあります。

于 2012-04-15T10:20:54.533 に答える
45

このファイルをデバイスから削除します

/mnt/secure/asec/smdl2tmp1.asec

Mathias Conradt (OP) による編集/更新:

root アクセス権がない場合は、SD カードをマウントし、PC 経由で削除する必要があります。

/.android_secure/smdl2tmp1.asec
于 2011-04-21T12:55:29.360 に答える
32

エミュレーターを使用している場合は、エミュレーターを編集してメモリを追加します。これと同じような問題があり、AVD のメモリを 200 MB から 1000 MB に編集しただけで、問題は解決したようです。幸運を祈ります。

于 2011-08-11T23:59:58.737 に答える
7

これは、破損した以前のインストールがあったことを意味します。外部にインストールする場合は、sd カードをフォーマットして再試行することをお勧めします。

于 2012-04-16T11:37:57.900 に答える
6

このエラーが繰り返し発生しました。エラーを完全に回避する最も簡単な方法は、SD カードをフォーマットすることです。電話またはエミュレータの内部ツールを使用する。自動生成された SD カードまたは独自の sdcard.iso を作成しても失敗し、内部の Android ツールでフォーマットされていない限り、このエラーが発生することがわかりました。

于 2013-06-02T21:23:47.407 に答える
4

私の場合、これはエミュレータのSDカードのスペースが不足していることが原因でした。私はかなり大きなプロジェクトで作業していて、40 mbで十分だと思っていましたが、200 mbに変更すると、問題は解決しました。

于 2012-08-05T22:47:31.993 に答える
4

.apkLink2SD用の2番目のパーティションを使用して、Note 8のCyanogenmod 12.1(Android 5.1.1)でさまざまなエラーが発生しました。rootとしてadbを介してインストールを強制することで、アプリをインストールできました。

adb root
adb install -f myapp.apk
于 2016-07-05T17:23:09.687 に答える
3

Android 5.0.1 からこのエラー メッセージが表示されました。[設定] -> [アプリ] -> [優先インストール場所] で、優先インストール場所を「リムーバブル SD カード」に変更しました。

オプションを「システムに決定させる」に戻すと、エラー メッセージは表示されなくなりました。

于 2015-03-21T15:59:41.577 に答える
1

android:installLocation="auto" 動作します..!!

そうでない場合は、外部ストレージ容量のサイズを確認してください。[使用可能なメモリ > アプリのサイズ] ストレージ容量が十分でない場合も、このエラーがスローされます。

于 2016-02-10T09:53:19.660 に答える
1

私にとって、それはデバイスの言語でした。アプリケーションをテストするために、言語をアラビア語に変更しました。次に、このエラーが発生しました。言語を元に戻すとうまくいきました。

于 2012-10-23T09:21:23.650 に答える
0

デバイスを再起動すると、問題が解決しました。

于 2017-01-05T11:22:15.697 に答える
0

私にとっては、いくつかのアプリケーションをアンインストールすることで問題が解決しました。ローカル ストレージに十分なメモリがある場合、APK のデプロイは正常に完了します。しかし、通常はガジェットを再起動するだけで、インストールは完了します。また、Clean Master などのプログラムが役立つ場合もあります。Clean Master を使用して不要なプロセスを消去し、プログラムを閉じて、十分なメモリを確保することがよくあります。

于 2014-07-18T10:09:53.510 に答える
0

エミュレーターでも同様の問題がありました。エミュレータのCPUの種類をARMからIntelに変更したら消えました。

于 2013-06-22T21:48:12.333 に答える