SQLiteDatabase.OpenDatabase是Fragment中的NullPointerException
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLiteDatabase.OpenDatabase是Fragment中的NullPointerException相关的知识,希望对你有一定的参考价值。
这在片段onCreateView
之外工作,但不在静态方法中。
SQLiteDatabase checkDB = SQLiteDatabase.openDatabase(path_to + DATABASE_NAME, null, SQLiteDatabase.OPEN_READWRITE);
我有一个DataBaseHelper
,它在静态方法之外初始化为
FeedReaderHelper mHelper = new FeedReaderHelper(this);
而对于片段,我使用
if (getActivity() != null)
FeedReaderHelper xHelper = new FeedReaderHelper(getActivity());
else
Log.d(TAG, "Null");
我知道getActivity
不是null,即使我只是尝试打开和关闭数据库,错误仍然存在。我的logcat是这样的:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
我不知道Resources
在这里的含义以及如何完全避免错误。
另外,我在调用onContentView
之前尝试打开数据库;它仍然在checkDB.close
解析为NullPointer
答案
我只使用FeedReederHelper
来调用db.exec()
语句,因此在checkDB
调用中没有硬编码路径的情况下,应该使用相同的Helper来打开数据库。 mHelper.getWriteableDatabase();
解决了这个问题。
以上是关于SQLiteDatabase.OpenDatabase是Fragment中的NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章