ligi
ligi

Reputation: 39519

ROOM OutOfMemoryError R(OOM)

I am seeing these errors in my play-console. Does anybody know how to best deal with OOM Errors in room?

java.lang.OutOfMemoryError: 
  at android.database.CursorWindow.nativeGetString (Native Method)
  at android.database.CursorWindow.getString (CursorWindow.java:451)
  at android.database.AbstractWindowedCursor.getString (AbstractWindowedCursor.java:51)
  at org.walleth.data.transactions.TransactionDAO_Impl$8.compute (TransactionDAO_Impl.java:1272)
  at org.walleth.data.transactions.TransactionDAO_Impl$8.compute (TransactionDAO_Impl.java:1212)
  at android.arch.lifecycle.ComputableLiveData$2.run (ComputableLiveData.java:87)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
  at java.lang.Thread.run (Thread.java:762)

Upvotes: 8

Views: 2131

Answers (1)

Adib Faramarzi
Adib Faramarzi

Reputation: 4054

Are you transferring huge data at once?

If it is a list you are filling, you can do it lazily and get it 100 by 100 for example.

Also If your response from database has many columns, SELECT the ones that you use.

Upvotes: 2

Related Questions