我正在使用 Ractive在混合 Android 应用程序的 WebView 组件中运行的网络应用程序中。整个网络应用程序在设备本地,并随应用程序一起安装。
当我在桌面浏览器中运行网络应用程序时没有问题。
但是,在混合应用程序中,当我尝试创建 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 源代码中搜索了一些提示,但一无所获(如果我这样做的话,我会感到很惊讶)。
有人遇到过这种情况吗?
最佳答案
仍然不知道为什么实例化一个 Ractive 实例会触发这个问题。但是,将其添加到嵌入 WebView 的 Activity 中解决了这个问题:
WebSettings settings = webView.getSettings();
settings.setGeolocationDatabasePath(this.getFilesDir().getPath());
关于android - 在 Android 混合应用中创建 Ractive 实例导致延迟和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713571/