我在一个在混合Android应用的WebView组件中运行的网络应用中使用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
即使我尝试创建一个仅提供el
和template
配置字段的精简Ractive实例,我也会这样做。当我跳过创建Ractive实例时,我没有收到错误。我编写的代码都没有使用地理定位或发出非本地请求。
正如您所看到的,它似乎正在尝试做一些与地理定位有关的事情。我搜索了Ractive的一些提示,但没有发现任何东西(如果我这样做会感到惊讶)。
以前有人遇到过这类事吗?
答案 0 :(得分:1)
仍然不知道为什么实例化Ractive实例会触发问题。但是,将其添加到嵌入WebView的活动中解决了它:
WebSettings settings = webView.getSettings();
settings.setGeolocationDatabasePath(this.getFilesDir().getPath());