Gson至Json转换OutOfMemory(OOM)

问题描述 投票:0回答:1
val gson = GsonBuilder().setPrettyPrinting().create()

Log.e("surveyListPretreatment",gson.toJson(
    SurveyTab(viewModel.owner.treat).apply {
        surveyListPretreatment = viewModel.surveyTabs.surveyListPretreatment
    })
)

java.lang.OutOfMemoryError:无法分配150994952字节的分配,其中包含25165824可用字节和103MB,直到OOM,允许的最大占用空间118228816,增长限制201326592

因为,

DTO有

var imgByteArray:ByteArray? = null //bitmap convert byteArray => It's OOM Generated...

我该如何解决?

arrays kotlin bitmap out-of-memory android-bitmap
1个回答
0
投票

[Jake Wharton已经在GitHub Issues上对此发表了评论。

没有魔法修复。您需要更大或更小的堆对象。

如果可以缩小对象,这将是最佳解决方案。如果您的应用程序确实需要那么多内存,则可以尝试在清单中为应用程序设置android:largeHeap="true"

参考:

  1. http://developer.android.com/reference/android/R.styleable.html#AndroidManifestApplication_largeHeap
  2. Out of memory exception in gson.fromJson()
© www.soinside.com 2019 - 2024. All rights reserved.