0

此错误不会在其他任何地方发生。我什至可以毫无问题地打开一个版本数据库(然后是另一个虚构的测试数据库)。但是当我打开主数据库时,我得到了错误。

我一直在使用的过程是从版本数据库中获取版本,如果失败,请尝试高于和低于该版本的一系列版本。我这样做是因为如果在我的打开过程中某处发生崩溃,版本号可能会变得混乱,或者数据库可能会在特定版本上进入错误状态(我认为这就是正在发生的事情)。

var myDB =openDatabase("Todo", "1.0", "Todo manager", dbSize); // gives SECURITY_ERR: DOM exception 18 on Android only 

我认为问题是由于以下原因之一: 1. 我第一次使用错误的版本,如果你第一次错过它,android 总是失败。2. 即使我在设置中清除历史记录和缓存(只有我能找到清除任何内容的地方)它实际上并没有删除数据库。3.也许真的有某种类型的安全错误?!

而已。我没有给你的代码。我的代码是一个 3000 行的 js 文件,它将不受支持的异构离线数据库的大杂烩变成了一个单一的东西。我只是在寻找一些关于可能出现问题的一般想法。

4

1 回答 1

0

我在我们的 android 表上使用了一个名为 lionchair 的 webSql 包装器,当我们将平板电脑从 android 3 升级到 android 4 时,我们的应用程序停止在 android 4 上运行,出现您描述的相同错误并且在同一行(打开数据库)。然而,在我们的 android 3 平板电脑上,它仍然按预期工作。

我发现的解决方案真的很愚蠢,但是在关闭我们最近升级的平板电脑并重新启动后,websql 再次工作。

于 2012-08-31T08:33:53.670 回答