0

我收到此错误:

USER_COMMENT=
APP_VERSION_CODE=44
APP_VERSION_NAME=2.0
ANDROID_VERSION=4.0.3
PHONE_MODEL=Transformer Prime TF201
CUSTOM_DATA=
STACK_TRACE=java.lang.NullPointerException
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157) 
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:231)
at com.mypackage.BLL_FriendRequest.findRowByID(BLL_FriendRequest.java:75)
at com.mypackage.Global$6.onComplete(Global.java:400)
at com.mypackage.AsyncRequestListener.onComplete(AsyncRequestListener.java:58)
at com.mypackage.AsyncRunner$3.run(AsyncRunner.java:360)

我检查了 SQLiteOpenHelper.java 并且在第 157 行它正在做某事mContext.CreateTable(bla bla bla);......所以我认为上下文是空的......可以使用什么来代替......尝试使用getApplicationContext()但没有用。

这种异常也不会经常发生,但有些用户正在经历这种情况。

4

1 回答 1

1

显然 (!) BLL_FriendRequest::75 正在调用 getReadableDatabase。

然后它调用 getWritableDatabase,因为这就是 getReadableDatabase 所做的。

它不是调用 createTable(blablabla)(因为表的创建取决于您),而是调用 openOrCreateDatabase。

我看不出上下文如何为空,因为您可能在那之前使用过它(它通常是来自活动内部的“this”)。在上下文的本机实现中可能会引发异常。

无论如何,您可能需要在您的上下文中测试 null 并尝试/捕获数据库创建。这可能是暂时的,您可以稍后再试。

于 2012-08-30T15:30:04.463 回答