Android,在服务中使用SQLite命令的方法上出现NullPointerException
只有一个任务,为什么我的sqlite命令在方法中,当我从服务调用它时,给我写了一个nullpointerexception。。。当我尝试使用toast时,它工作得非常好,但在我使用mDbHelper.open/naplnSviatky/close之后,我的应用程序将崩溃 方法只有查询命令,在活动和片段中工作正常 这是我的Android,在服务中使用SQLite命令的方法上出现NullPointerException,android,sqlite,service,Android,Sqlite,Service,只有一个任务,为什么我的sqlite命令在方法中,当我从服务调用它时,给我写了一个nullpointerexception。。。当我尝试使用toast时,它工作得非常好,但在我使用mDbHelper.open/naplnSviatky/close之后,我的应用程序将崩溃 方法只有查询命令,在活动和片段中工作正常 这是我的服务 public class SviatokFullFillService extends Service { String username; private Databa
服务
public class SviatokFullFillService extends Service
{
String username;
private DatabaseOp mDbHelper;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onStart(Intent intent, int startId)
{
// TODO Auto-generated method stub
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
username = sharedPrefs.getString("prefUsername", "NULL");
//Toast.makeText(this, username, Toast.LENGTH_SHORT).show();
mDbHelper.open();
mDbHelper.naplnSviatky(username);
mDbHelper.close();
}
}
这是我的LogCat
04-22 14:16:43.890: E/AndroidRuntime(6560): FATAL EXCEPTION: main
04-22 14:16:43.890: E/AndroidRuntime(6560): java.lang.RuntimeException: Unable to start service sk.tomino.studentDiary.SviatokFullFillService@410f1188 with Intent { cmp=sk.tomino.studentDiary/.SviatokFullFillService }: java.lang.NullPointerException
04-22 14:16:43.890: E/AndroidRuntime(6560): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2950)
04-22 14:16:43.890: E/AndroidRuntime(6560): at android.app.ActivityThread.access$1900(ActivityThread.java:151)
04-22 14:16:43.890: E/AndroidRuntime(6560): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1442)
04-22 14:16:43.890: E/AndroidRuntime(6560): at android.os.Handler.dispatchMessage(Handler.java:99)
04-22 14:16:43.890: E/AndroidRuntime(6560): at android.os.Looper.loop(Looper.java:155)
04-22 14:16:43.890: E/AndroidRuntime(6560): at android.app.ActivityThread.main(ActivityThread.java:5520)
04-22 14:16:43.890: E/AndroidRuntime(6560): at java.lang.reflect.Method.invokeNative(Native Method)
04-22 14:16:43.890: E/AndroidRuntime(6560): at java.lang.reflect.Method.invoke(Method.java:511)
04-22 14:16:43.890: E/AndroidRuntime(6560): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
04-22 14:16:43.890: E/AndroidRuntime(6560): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
04-22 14:16:43.890: E/AndroidRuntime(6560): at dalvik.system.NativeStart.main(Native Method)
04-22 14:16:43.890: E/AndroidRuntime(6560): Caused by: java.lang.NullPointerException
04-22 14:16:43.890: E/AndroidRuntime(6560): at sk.tomino.studentDiary.SviatokFullFillService.onStart(SviatokFullFillService.java:30)
04-22 14:16:43.890: E/AndroidRuntime(6560): at android.app.Service.onStartCommand(Service.java:450)
04-22 14:16:43.890: E/AndroidRuntime(6560): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2916)
04-22 14:16:43.890: E/AndroidRuntime(6560): ... 10 more
您已经声明了变量
私有数据库op mDbHelper代码>在类级别,但当您在onStart()
方法中使用它时,您尚未初始化它,因此它会抛出NullPointerException
请上载DatabaseOp
类的代码您可能希望了解如何在调试模式下运行应用程序,并在代码中设置断点以检查变量的值。在使用之前初始化mDbHelper。好的,谢谢,我忘记了。。。还有,请你帮我在后台玩naplnSviatok方法,在我启动它之后,我的主线程将等待并冻结应用程序,我需要启动这个方法和guinext@Tomino,那个方法在哪里?@Tomino,让我看看,请上传问题中的代码。