关闭应用程序时出现Android错误

时间:2011-12-27 10:50:37

标签: android android-logcat

我有一个管理数据库的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)
`

2 个答案:

答案 0 :(得分:1)

我觉得问题是数据库实例或任何其他对象变为null但是您正在使用该对象调用某些方法。 在使用任何对象的任何方法之前始终检查null 。请参阅示例示例

例如

if(database != null){
database.close();
} 

答案 1 :(得分:0)

与此问题类似:SQLiteDatabase close() function causing NullPointerException when multiple threads

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