android - webview 崩溃 NullPointerException android.webkit.WebViewDatabase.initDatabase(WebViewDatabase.java :234)

标签 android android-webview android-sqlite

我从谷歌播放消息中收到我的应用程序崩溃消息

java.lang.NullPointerException
at android.webkit.WebViewDatabase.initDatabase(WebViewDatabase.java:234)
at android.webkit.WebViewDatabase.init(WebViewDatabase.java:212)
at android.webkit.WebViewDatabase.access$000(WebViewDatabase.java:40)
at android.webkit.WebViewDatabase$1.run(WebViewDatabase.java:193)

我没有在 google 或 stackoverflow 中找到类似的问题,所以我不知道为什么会出现这种问题,但我知道这是由 webview 引起的。

最佳答案

看起来与这里的这个问题相同(加上可能的解决方法):

https://code.google.com/p/android/issues/detail?id=35204

我在这里找到了 WebViewDatabase 的代码(它不是完全相同的版本,但是有足够的上下文来获取图片):

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/webkit/WebViewDatabase.java#WebViewDatabase.initDatabase%28android.content.Context%29

如果您查看 initDatabase() 的代码,在我标记为“****”的行中存在潜在的 NPE。请注意,以下行检查 NULL,所以它看起来有点笨:

 private void initDatabase(Context context) {
     try {
         mDatabase = context.openOrCreateDatabase(DATABASE_FILE, 0, null);
     } catch (SQLiteException e) {
         // try again by deleting the old db and create a new one
         if (context.deleteDatabase(DATABASE_FILE)) {
             mDatabase = context.openOrCreateDatabase(DATABASE_FILE, 0,
                     null);
         }
     }

     mDatabase.enableWriteAheadLogging(); ****

     // mDatabase should not be null,
     // the only case is RequestAPI test has problem to create db
     if (mDatabase == null) {
         mInitialized = true;
         notify();
         return;

关于android - webview 崩溃 NullPointerException android.webkit.WebViewDatabase.initDatabase(WebViewDatabase.java :234),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478097/

相关文章:

android - Android 版 WebView 中的滚动性能 - Jelly Bean 4.1.x

android - 如何使用 Android 在 sqlite 中获取行数?

android - 从 sqlite 中删除不起作用

java - Android SQLite 查询从时间字符串列获取不同的年份值

android - React-native 应用程序中的业务逻辑在哪里?

java - 无法从 Handler 类型对非静态方法 sendEmptyMessage(int) 进行静态引用

android - 如何从 BackStack 恢复现有的 Fragment

Android OpenGL ES 1.1 白盒纹理

javascript - iframe 未在 webview android 中加载

Android Webview - navigator.geolocation.getCurrentPosition 不工作