私のプロジェクトでこの奇妙な問題があるようです。
すべて正常に動作しましたが、S6 EdgeをAndroid 6.0.1にアップデートして以来、アプリケーションはの2回目の起動後にOutOfMemoryエラーでクラッシュするようです。Android 6.0.1のOutOfMemoryエラーデバイス
アプリケーションにはディレクトリ内に2000以上の画像が含まれており、カウンタをインクリメントして画像ビューに表示するタイマーを使用しています。 onFinish()/ onPause()/ onDestroy()が呼び出されると、timer、counter、imageViewなどのすべてのオブジェクトをnullに設定して破棄/キャンセルしています。
は、これは私がImageViewの
int resID = getResources().getIdentifier("animation"+i , "drawable", getPackageName());
Drawable animationFrame = ContextCompat.getDrawable(this, resID);
animationView.setImageDrawable(animationFrame);
i++;
すべての画像を印刷/フェッチしています方法です(私は生成されたAPKを使用してアプリをインストールしても)最初の打ち上げに大きな動作します。しかし、最小化されたアプリケーションからアプリケーションを削除すると、アプリケーションは2〜3秒後にクラッシュします。私は割り当てられたメモリをチェックしており、最初の実行では正常(最大12MB)ですが、2番目に割り当てられたメモリは255MBです。
onDestroy()メソッド これは初期化さALL私の変数を含んでいます。プライベートまたは
@Override
protected void onDestroy() {
super.onDestroy();
pauseAnimation();
animationView.setImageDrawable(null);
animationView = null;
justAnimation = null;
buttonSign = null;
i = 0;
media.stop();
media = null;
deathRateEU = 0;
deathRateUK = 0;
labelNumber = null;
labelNumberUK = null;
buttonSign = null;
loadingEU = null;
loadingUK = null;
}
変数アクセスがないとメディアがパブリックとして初期化のMediaPlayerで、カウンタ(i)はポイント に到達したとき、それは音を果たしているとしても、問題はなくは、私の変数が初期化されていない場合
私はAndroid 5.1.3を実行する別のデバイスにこれをインストールしようとしましたが(確かではありませんが5.1のものです)、うまくいきます。
Android 6.0.1でアプリケーションが最小化されたときにOutOfMemoryの問題について既知のバグがあるかどうかは知っていますか?
私はあなたが私はすべての関連ログ/メモリモニタのスクリーンショットなどを投稿したい場合は私に知らせてください、私の携帯電話は、バージョン6.0.1
に更新した後、私は/の前に何らかの変更を加えなかったことを100%確信しています第一起動時に
セカンド起動
注:
- アプリケーションがすでにデバイスにインストールされていると私は、Android Studioを使用して、それをコンパイルしようとした場合、クラッシュが、私はアンインストール/再コンパイルする必要があり
- を発生最初のアプリケーションの動作を管理する
- 私のプロジェクトをGenymotion Android 6.0デバイスで実行しようとすると、同じエラーが発生しますが、Android 5では実行されません。1 genymotion仮想デバイス
[mcve]を入力してください。これには、クラッシュするコードとクラッシュのスタックトレースが含まれます。 – CommonsWare
興味のあるものは、onDestroyも呼び出されますか? onDesroyはこれを行うための信頼できる場所ではなかったため、イメージとビデオに関連するクリーンアップコードをonPauseに移動してonResumeに復元する必要がありました。 – Ewald
はい、私はこのメソッドが – cmario