当抛出SQLiteOutOfMemoryException时

时间:2016-12-06 11:22:44

标签: java android sqlite android-sqlite

我使用insertOrThrow方法将数据插入SQLiteDatabase。抛出异常处理manullay以确保将给定值插入到db中。

SQLiteFullExceptionSQLiteDiskIOException等例外情况在android developer site中有一些说明可供参考。

但对于SQLiteOutOfMemoryException,没有任何描述可供参考。 有谁知道什么时候会抛出这个SQLiteOutOfMemoryException。如果有人知道,请分享。

2 个答案:

答案 0 :(得分:3)

当您的sqlite数据库大小超出堆大小时,name将在nullchar string [15] = {'\0'};时创建内存数据库。尝试在清单中使用largeHeap或不创建内存数据库

答案 1 :(得分:1)

在android中对SQlite数据库的大小有一些限制。 当数据库大小超过我在下面的kitkat上测试的4 MB时会出现 SQLiteOutOfMemoryException ,但是在marshmellow上它会超过9 MB。这还取决于运行应用程序的可用空间。     因此请将您的数据库保持在4 MB以下。     始终在文件中对数据库进行适当备份,并根据应用程序要求与应用程序服务器同步。     切勿以BLOB或Base64字符串格式将图像存储在SQlite DB中。