2012-08-30 57 views
0

我收到此错误的原因:什么都不可能是这个错误的android系统

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()但没用。

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

+3

你应该检查BLL_FriendRequest.java行75 –

+0

还要检查对数据库的访问是否同步。 –

+0

你是否在构造函数中为你的活动运行它,如果是的话,将它移动到onCreate(),因为我相信构造函数中的上下文为空 – jtwigg

回答

1

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

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

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

我不明白上下文可能为空,因为您可能在此之前使用它(它通常来自活动内部的'this')。在本地实现上下文中引发异常是可能的。

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