什么可能是android中这个错误的原因

时间:2012-08-30 14:54:52

标签: android sqlite

我收到此错误:

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); ....所以我认为上下文为空...可以使用什么代替...尝试使用{{1但没有用。

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

1 个答案:

答案 0 :(得分:1)

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

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

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

我没有看到上下文如何为空,因为你可能在此之前使用它(它通常来自活动内部的'this')。有可能在上下文的本机实现中引发异常。

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