私のアプリケーションでは、デバイスにキャッシュデータを実装してオフラインモードで表示しようとしています。それは前にうまく動作しますが、今私はこのクラッシュを取得します。
android java lang abstractstringbuilder enlargebuffer out of memoryエラー
Fatal Exception: java.lang.OutOfMemoryError
at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:94)
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:132)
at java.lang.StringBuilder.append(StringBuilder.java:124)
at org.json.JSONStringer.string(JSONStringer.java:344)
at org.json.JSONStringer.value(JSONStringer.java:252)
at org.json.JSONObject.writeTo(JSONObject.java:672)
at org.json.JSONStringer.value(JSONStringer.java:237)
at org.json.JSONObject.writeTo(JSONObject.java:672)
at org.json.JSONStringer.value(JSONStringer.java:237)
at org.json.JSONObject.writeTo(JSONObject.java:672)
at org.json.JSONStringer.value(JSONStringer.java:237)
at org.json.JSONObject.writeTo(JSONObject.java:672)
at org.json.JSONStringer.value(JSONStringer.java:237)
at org.json.JSONArray.writeTo(JSONArray.java:602)
at org.json.JSONStringer.value(JSONStringer.java:233)
at org.json.JSONObject.writeTo(JSONObject.java:672)
at org.json.JSONObject.toString(JSONObject.java:641)
、これは問題がいくつかの答えを追加することをお勧め問題を検索した後、このコードresponse.toString()
でStringに私のJsonObject
を変換しようとするために起こる問題は
mCaching.cache(response.toString(), Caching.TYPE_GLOBAL);
が起こるのラインでありますandroid:largeHeap="true"
私のアプリケーションマニフェストファイルでは、クラッシュが生成される前に既にそれを追加します。どんな助け?
だから、このオブジェクトをキャッシュディレクトリから削除する必要がありますか? – Azak
最初にキャッシュディレクトリに一時ファイルを書き込み、実際の名前(例:cache_temp.json - > cache.json)で名前を変更します。データを読み込むとcache.jsonがチェックされます。 – etan
保存したデータに参照ループがないことを確認してください。 – etan