
我的程序有问题.
我使用数据库来保存我的应用程序的设置.当我在应用程序中保存密码时一切正常,但是当我保存“学校类”的名称时原则上使用相同的方法,但另一个表崩溃并且我收到此错误:
02-19 15:32:04.070: E/AndroIDRuntime(14349): FATAL EXCEPTION: main02-19 15:32:04.070: E/AndroIDRuntime(14349): java.lang.NullPointerException02-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.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.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)这是应该在数据库中写入的方法:
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); }}此方法没有任何问题:
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
解决方法:
传递给sqliteOpenHelper构造函数的Context是null.
总结以上是内存溢出为你收集整理的Android NullPointerException GetDatabaseLocked全部内容,希望文章能够帮你解决Android NullPointerException GetDatabaseLocked所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)