0

我正在使用 PhoneGap 开发一个 Android 应用程序。该应用程序从互联网上的后端接收前端数据,并使用缓存清单使其成为离线应用程序。这已经完美运行了半年,但是现在,如果应用程序正在尝试更新,它会下载所有内容,但最后,我得到了错误

03-24 19:42:41.304: E/SQLiteLog(2951): (13) statement aborts at 10: [INSERT INTO CacheResourceData (data, path) VALUES (?, ?)] 
03-24 19:42:41.304: E/SQLiteLog(2951): (1) statement aborts at 2: [ROLLBACK] cannot rollback - no transaction is active

在 LogCat 日志上。现在给任何人服药,这意味着什么,问题是什么,也许,我该如何解决?AppCacheMaxSize已经设置为,这100MB比应用程序真正需要的要多得多。

4

2 回答 2

1

听起来数据库中的数据太多了,无法处理。

错误 10 状态代码意味着A lock for the transaction could not be obtained in a reasonable time.(请参​​阅 https://developer.mozilla.org/en-US/docs/IndexedDB/IDBDatabaseException)。

于 2013-03-25T15:52:17.847 回答
0

我通过增加 appCache 限制解决了这个问题。

将此代码放在onCreate方法末尾的 [appName].java 中。

if(android.os.Build.VERSION.SDK_INT >= 7) {
    //set custom cache size (20 MB), as the default seems to be to small (5 MB)
    //this is deprecated since API 18 but seems still to be needed
    super.appView.getSettings().setAppCacheMaxSize(1024*1024*20);
}

不幸的是,这种方法自 18 版以来已被弃用。但目前仍需要让我的应用程序与 appCache 一起工作。来源: http: //developer.android.com/reference/android/webkit/WebSettings.html#setAppCacheMaxSize(long)

于 2013-08-05T12:43:35.123 回答