Google PlayからAndroid App用の次の奇妙なクラッシュレポートを受け取っています(割り振り量と空き容量に注意してください) -Android 5.0のjava.lang.OutOfMemoryError(5M利用時の16k割り当てによる)
java.lang.OutOfMemoryError: Failed to allocate a 16396 byte allocation with 5746272 free bytes and 111MB until OOM
at com.android.internal.util.FastXmlSerializer.<init>(FastXmlSerializer.java:55)
at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:183)
at android.app.SharedPreferencesImpl.writeToFile(SharedPreferencesImpl.java:597)
at android.app.SharedPreferencesImpl.access$800(SharedPreferencesImpl.java:51)
at android.app.SharedPreferencesImpl$2.run(SharedPreferencesImpl.java:512)
at android.app.SharedPreferencesImpl.enqueueDiskWrite(SharedPreferencesImpl.java:533)
at android.app.SharedPreferencesImpl.access$100(SharedPreferencesImpl.java:51)
at android.app.SharedPreferencesImpl$EditorImpl.commit(SharedPreferencesImpl.java:455)
at com.headuck.headuckblocker.bj.a(Unknown Source)
at com.headuck.headuckblocker.UpdateService.e(Unknown Source)
at com.headuck.headuckblocker.UpdateService.a(Unknown Source)
at x.a.onHandleIntent(Unknown Source)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.os.HandlerThread.run(HandlerThread.java:61)
私はOutOfMemoryErrorに関する多くの質問を知っていますが、利用可能な空き容量よりはるかに小さいバイト割り当てが原因ではないようです。
ユーザーはAndroid 5.0でGalaxy S5を使用していましたが、ゲームをプレイしている間にこのようなクラッシュが発生していると報告しています(ゲームは問題ではありません) - 別のメモリを使用するアプリケーションフォアグラウンドでは、私のアプリケーションのバックグラウンドサービスが実行される予定です。 Google Playのレポートでは、他の方法で詳細を知ることはできません。
私の質問は、これが起こる原因となる可能性があることと、アプリがそれを避けるために取る可能性のある対策です。
いくつかの背景(該当する場合):上記のクラッシュは、UI /ビットマップに関係しない定期的にスケジュールされたアプリケーションのバックグラウンドサービスからのものです。サーバーからデータをダウンロードし、データベース/ステータスを更新するだけです。 5年前のマシンでRAMを大幅に削減し、問題なく動作し、近代的なAndroid搭載携帯電話の標準によって非常に軽くなるはずです。上記のエラーのインスタンスは、データベースの更新後の時点で発生し、サービスは更新されたステータスを共有プリファレンスに書き込みます。
編集:ちょうどOutOfMemoryError in android on allocation 4Mb when 10Mb is freeを読んでください。これは投稿後にこの質問にリンクされていますが、利用可能な空き領域がこの場合断片化されている可能性は非常に低いですか?他の原因が考えられますか?
https://github.com/facebook/fresco/issues/404 https://github.com/facebook/fresco/issues/159 –