0

我有一个管理数据库的android程序。在这个数据库中,我写了我设备的传感器值。

使用主页按钮关闭应用程序时,出现强制关闭错误。

这是我的logcat,你能帮帮我吗,谢谢。

`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。见示例

例子

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

看起来类似于这个问题:SQLiteDatabase close() function cause NullPointerException when multiple threads

您可能不需要调用 database.close()

于 2012-06-18T18:58:25.827 回答