1

我在混合 Android 应用程序的 WebView 组件中运行的 Web 应用程序中使用Ractive。整个 Web 应用程序位于设备本地,并随应用程序一起安装。

当我在桌面浏览器中运行 Web 应用程序时没有问题。

但是,在混合应用程序中,当我尝试创建 Ractive 实例时,会有大约 30 秒的延迟。我一直在 ADT LogCat 中得到这个:

10-31 10:37:58.859: E/SQLiteLog(26299): (14) cannot open file at line 30174 of [00bb9c9ce4]
10-31 10:37:58.859: E/SQLiteLog(26299): (14) os_unix.c:30174: (2) open(/CachedGeoposition.db) - 
10-31 10:37:58.871: D/WebKit(26299): ERROR: 
10-31 10:37:58.871: D/WebKit(26299): SQLite database failed to load from /CachedGeoposition.db
10-31 10:37:58.871: D/WebKit(26299): Cause - unable to open database file
10-31 10:37:58.879: D/WebKit(26299): external/webkit/Source/WebCore/platform/sql/SQLiteDatabase.cpp(71) : bool WebCore::SQLiteDatabase::open(const WTF::String&, bool)
10-31 10:38:26.984: D/dalvikvm(26299): GC_FOR_ALLOC freed 133K, 36% free 8551K/13191K, paused 28ms, total 29ms
10-31 10:38:27.031: D/dalvikvm(26299): GC_CONCURRENT freed 17K, 32% free 9045K/13191K, paused 12ms+5ms, total 44ms
10-31 10:38:27.031: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 28ms
10-31 10:38:27.168: D/dalvikvm(26299): GC_CONCURRENT freed 181K, 29% free 9375K/13191K, paused 16ms+4ms, total 55ms
10-31 10:38:27.168: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 8ms
10-31 10:38:27.297: D/dalvikvm(26299): GC_CONCURRENT freed 163K, 27% free 9724K/13191K, paused 15ms+8ms, total 80ms
10-31 10:38:27.297: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 35ms
10-31 10:38:27.410: D/dalvikvm(26299): GC_CONCURRENT freed 187K, 24% free 10126K/13191K, paused 12ms+7ms, total 57ms
10-31 10:38:27.410: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 17ms
10-31 10:38:27.562: D/dalvikvm(26299): GC_CONCURRENT freed 277K, 20% free 10571K/13191K, paused 11ms+3ms, total 57ms
10-31 10:38:27.562: D/dalvikvm(26299): WAIT_FOR_CONCURRENT_GC blocked 30ms

即使我尝试创建一个仅提供eltemplate配置字段的精简 Ractive 实例,我也会得到这个。当我跳过创建 Ractive 实例时,我没有收到错误消息。而且我编写的代码都没有使用地理定位或发出非本地请求。

如您所见,它似乎正在尝试做一些与地理定位有关的事情。我在 Ractive 源中搜索了一些提示,但什么也没找到(如果我这样做了,我会感到惊讶)。

有没有人遇到过这种事情?

4

1 回答 1

1

仍然不知道为什么实例化 Ractive 实例会触发问题。但是,将此添加到嵌入 WebView 的活动中解决了它:

WebSettings settings = webView.getSettings();
settings.setGeolocationDatabasePath(this.getFilesDir().getPath());

更多信息:https ://stackoverflow.com/a/5423026/369722

于 2013-11-06T06:01:04.140 回答