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);....コンテキストがnullだと思います...代わりに使用できるもの..使用しようとしましたgetApplicationContext()が、役に立ちませんでした。

また、この種の例外は定期的に発生しませんが、一部のユーザーはこれを経験しています。

4

1 に答える 1

1

明らかに(!)BLL_FriendRequest::75はgetReadableDatabaseを呼び出しています。

次に、getWritableDatabaseを呼び出します。これは、getReadableDatabaseが行うことだからです。

createTable(blablabla)を呼び出すのではなく(テーブルの作成はあなた次第であるため)、openOrCreateDatabaseを呼び出します。

おそらくその前にコンテキストを使用しているので、コンテキストがどのようにnullになる可能性があるのか​​わかりません(アクティビティ内からの「this」であることがよくあります)。コンテキストのネイティブ実装で例外が発生する可能性があります。

とにかく、コンテキストでnullをテストし、データベースの作成を試行/キャッチする必要がある可能性があります。一時的なものであり、少し後で再試行できる可能性があります。

于 2012-08-30T15:30:04.463 に答える