Android NullPointerException + GetDatabaseLocked
Ich habe ein problem mit meinem programm.
Ich benutze eine Datenbank zum speichern der Einstellungen meiner app. Wenn ich das Passwort speichern in der app seine ganz ok, aber wenn ich speichern den Namen einer "schulklasse" mit im Prinzip der gleichen Methode, aber ein anderer Tisch stürzt es ab und ich bekam diese Fehlermeldung:
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)
Dies ist die Methode, die sollten in die Datenbank geschrieben:
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);
}
}
Diese Methode funktioniert ohne Probleme:
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);
}
}
Dies ist die Methode, rufen die anderen:
public void onItemClick(AdapterView<?>arg0,View v, int position,long id){
db.insertKurs(kursView1.getItemAtPosition(position).toString());
}
});
Danke für die Hilfe und sorry für mein Englisch 😀
- Die Linie 95 Linie
DBHandler.java
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
Context
Sie an dieSQLiteOpenHelper
Konstruktor warnull
.