Android 安全错误:openDatabase上的DOM异常18

Android 安全错误:openDatabase上的DOM异常18,android,html,web-sql,opendatabase,Android,Html,Web Sql,Opendatabase,我有一个基于web的Android应用程序,它使用WebSQL进行存储。出于某种原因,在某一点调用openDatabase(响应按钮单击),会导致DOMException,并显示消息“SECURITY\u ERR:DOM Exception 18” 请注意,我没有使用PhoneGap 我在这里要问的主要问题是:openDatabase上出现DomeException 18的可能原因是什么 更多详细信息: 此异常仅在数据库尚不存在时发生。如果它已经存在,则按预期工作。调用openDatabase的

我有一个基于web的Android应用程序,它使用WebSQL进行存储。出于某种原因,在某一点调用
openDatabase
(响应按钮单击),会导致
DOMException
,并显示消息
“SECURITY\u ERR:DOM Exception 18”

请注意,我没有使用PhoneGap

我在这里要问的主要问题是:
openDatabase
上出现DomeException 18的可能原因是什么

更多详细信息: 此异常仅在数据库尚不存在时发生。如果它已经存在,则按预期工作。调用
openDatabase
的函数在应用程序的另一部分中使用,工作正常

我到目前为止所做的尝试

  • 减少数据库的大小-不应该是问题,因为它是由应用程序的另一部分创建的
  • 我已经检查了外部存储权限-同样,这应该不是问题
  • 我在某个地方读到,插入的USB电缆可能导致此问题,而不是本例中的原因
编辑: 这是命令的外观:

根据规范,它只由两个原因引起

  • 如果请求违反策略决策(例如,如果用户代理配置为不允许页面打开数据库),则用户代理可能会引发安全错误异常,而不是返回数据库对象

  • 如果origin不是scheme/host/port元组,则抛出一个SECURITY\u ERR异常


我发现这与允许的数据库大小有关。
如果您试图在iOS上打开大于50mb的db,则会出现此错误。

两个调用的来源相同,并且在加载页面之前配置了用户代理。应该有问题。只有当您显示代码时,我才能知道。如果您超出了大小限制,如果opendatabase导致完全相同的错误,我也不会感到惊讶,但这里的情况并非如此。正如我所说,它已经在应用程序的另一部分成功创建。此外,我已将限制设置为5 MB。该问题是否已解决…我面临相同的问题…从未找到原因。最后,我发现WebSQL稳定性在不同的Android设备/版本上太不一致,无法满足我的需要,因此我最终编写了一个本机界面,结果证明它要好得多。虽然我不再需要这个问题的答案,但出于好奇,我还是很想听听答案。我解决了这个问题。在设备就绪功能中严格称为“开放数据库”…你在使用PhoneGap吗?(只是为了避免混淆,因为原来的问题不是PhoneGap)
db = openDatabase('my_database', '1.0', 'My database description', 5*1024*1024, function() {});