0

データベースを管理するAndroidプログラムがあります。このデータベースに、デバイスのセンサー値を書き込みます。

ホームボタンでアプリケーションを閉じると、強制終了エラーが発生します。

これが私のログキャットです。助けてください、ありがとう。

`12-27 10:45:20.827: D/AndroidRuntime(1053): Shutting down VM  
12-27 10:45:20.827: W/dalvikvm(1053): threadid=1: thread exiting with uncaught exception (group=0x40014760)  
12-27 10:45:20.942: E/AndroidRuntime(1053): FATAL EXCEPTION: main  
12-27 10:45:20.942: E/AndroidRuntime(1053): java.lang.NullPointerException  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at android.database.sqlite.SQLiteStatement.releaseAndUnlock(SQLiteStatement.java:283)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:116)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1732)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1605)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at milos.stationdemesure.CapteursBDD.insertValeursCapteur(CapteursBDD.java:69)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at milos.stationdemesure.EssaisCapteurs.onProximityChanged(EssaisCapteurs.java:454)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at milos.stationdemesure.EssaisCapteurs.onSensorChanged(EssaisCapteurs.java:354)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at android.hardware.SensorManager$ListenerDelegate$1.handleMessage(SensorManager.java:529)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-27 10:45:20.942: E/AndroidRuntime(1053):     at android.os.Looper.loop(Looper.java:126)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at android.app.ActivityThread.main(ActivityThread.java:3997)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at java.lang.reflect.Method.invokeNative(Native Method)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at java.lang.reflect.Method.invoke(Method.java:491)
12-27 10:45:20.942: E/AndroidRuntime(1053):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)  
12-27 10:45:20.942: E/AndroidRuntime(1053):     at dalvik.system.NativeStart.main(Native Method)
`
4

2 に答える 2

1

データベース インスタンスまたは他のオブジェクトが null になったことが問題だと思いますが、そのオブジェクトを使用して何らかのメソッドを呼び出しています。オブジェクトのメソッドを使用する前に、必ず null をチェックしてください。サンプル例を参照してください

if(database != null){
database.close();
} 
于 2011-12-27T11:12:21.573 に答える
0

この問題に似ているように見えます: SQLiteDatabase close() 関数が複数のスレッドの場合に NullPointerException を引き起こす

database.close() を呼び出す必要がない場合があります

于 2012-06-18T18:58:25.827 に答える