我使用insertOrThrow方法将数据插入SQLiteDatabase。抛出异常处理manullay以确保将给定值插入到db中。
SQLiteFullException,SQLiteDiskIOException等例外情况在android developer site中有一些说明可供参考。
但对于SQLiteOutOfMemoryException,没有任何描述可供参考。 有谁知道什么时候会抛出这个SQLiteOutOfMemoryException。如果有人知道,请分享。
答案 0 :(得分:3)
当您的sqlite数据库大小超出堆大小时,name
将在null
为char string [15] = {'\0'};
时创建内存数据库。尝试在清单中使用largeHeap或不创建内存数据库
答案 1 :(得分:1)
在android中对SQlite数据库的大小有一些限制。 当数据库大小超过我在下面的kitkat上测试的4 MB时会出现 SQLiteOutOfMemoryException ,但是在marshmellow上它会超过9 MB。这还取决于运行应用程序的可用空间。 因此请将您的数据库保持在4 MB以下。 始终在文件中对数据库进行适当备份,并根据应用程序要求与应用程序服务器同步。 切勿以BLOB或Base64字符串格式将图像存储在SQlite DB中。