Android的NullPointerException异常+ GetDatabaseLocked [英] Android NullPointerException + GetDatabaseLocked

查看:187
本文介绍了Android的NullPointerException异常+ GetDatabaseLocked的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有我的PROGRAMM一个问题。 我使用一个数据库来保存我的应用程序的设置。当我保存应用程序的密码it's一切ok,但是当我救了高中班的名义,在原则上相同的方法,但另一个表崩溃,我已经得到了这个错误:

I have got a problem with my programm. I use a database to save the settings of my app. When I save the password in the app it´s all ok, but when I save the name of a "school class" with in principle the same method, but another table it crashes and I have got this error:

02-19 15:32:04.070: E/AndroidRuntime(14349): FATAL EXCEPTION: main
02-19 15:32:04.070: E/AndroidRuntime(14349): java.lang.NullPointerException
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at de.vertretungsplan2.helper.DBHandler.insertKurs(DBHandler.java:95)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at de.vertretungsplan2.tabswipe.adapter.KurseFragment$1.onItemClick(KurseFragment.java:38)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.widget.AdapterView.performItemClick(AdapterView.java:297)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.widget.AbsListView$1.run(AbsListView.java:3463)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.os.Handler.handleCallback(Handler.java:730)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.os.Handler.dispatchMessage(Handler.java:92)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.os.Looper.loop(Looper.java:137)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.app.ActivityThread.main(ActivityThread.java:5289)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at java.lang.reflect.Method.invokeNative(Native Method)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at java.lang.reflect.Method.invoke(Method.java:525)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at dalvik.system.NativeStart.main(Native Method)

这是应该在数据库编写方式:

This is the Method that should write in the database:

public void insertKurs(String Kurs){
    long rowId = -1;
    try{
        //open Database
        SQLiteDatabase db = this.getWritableDatabase();
        //Content
        ContentValues values = new ContentValues();
        values.put(KURS_NAME, Kurs);
        //insert Values in Table 
        rowId = db.insert(TABLE_NAME_KURS, null, values);
        db.close();
    }catch (SQLiteException e){
        Log.e(TAG,"insert()",e);
    }finally{
        Log.d(TAG, "insert(): rowId=" + rowId);         
    }
}

这没有任何问题的方法工作:

This Method work without any Problems:

public void insertPW(String PW){
    SQLiteDatabase db = null;
    long rowId = -1;
    try{
        //open Database
        db = this.getWritableDatabase();
        //Content
        ContentValues values = new ContentValues();
        values.put(PASSWORD_NAME, PW);
        //insert Values in Table 
        rowId = db.insert(TABLE_NAME_PW, null, values);
        db.close();
    }catch (SQLiteException e){
        Log.e(TAG,"insert()",e);
    }finally{
        Log.d(TAG, "insert(): rowId=" + rowId);         
    }
}

这是调用其他方法:

public void onItemClick(AdapterView<?>arg0,View v, int position,long id){                   
            db.insertKurs(kursView1.getItemAtPosition(position).toString());

        }
    }); 

感谢您的帮助,对不起我的英文:D

Thank you for the help and sorry for my english :D

推荐答案

上下文你传递给 SQLiteOpenHelper 构造函数是

The Context you passed to the SQLiteOpenHelper constructor was null.

这篇关于Android的NullPointerException异常+ GetDatabaseLocked的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆