- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的程序有问题。我使用数据库来保存我的应用程序的设置。当我在应用程序中保存密码时一切正常,但是当我使用原则上相同的方法保存“学校类(class)”的名称时,但另一个表崩溃了,我遇到了这个错误:
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)
这是应该写入数据库的方法:
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,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21883777/
我正在尝试访问 sqlite 数据库,但我不知道我的代码做错了什么。我不知道问题出在哪里。你能看看吗? public class DatabaseManager { private SQLit
我不知道是什么锁定了我的数据库。这个应用程序在生产中是全新的,我什至无法执行第一个将用户添加到数据库的操作。我有一个 DatabaseHandler 可以执行所有数据库操作。我的 Activity 正
我的程序有问题。我使用数据库来保存我的应用程序的设置。当我在应用程序中保存密码时一切正常,但是当我使用原则上相同的方法保存“学校类(class)”的名称时,但另一个表崩溃了,我遇到了这个错误: 02-
我有一个名为 CheckForUpdates 的专用类,它扩展了 ASyncTask,用于解析来自 Internet 的 JSON 文件。创建 CheckForUpdates 类并从主 Activit
我试图在一个方法中存储特定的列数据,并在另一个类 String [] 中调用该方法,其中微调器将访问该数组以显示列行供用户选择,然后将其存储在另一个数据库中。 我收到 nulpointerExcept
我是 android 编程的初学者。执行一种方法时出现此错误。我有这种监听音量变化事件的方法。 public boolean onKeyDown(int keyCode, KeyEvent event
我想使用Listview来显示SQLite数据库中的数据。我使用 Fragment 来获取 ListView 。但现在,我遇到了一个问题: This is the Log info: E/Androi
我正在尝试从 Sqlite 数据库中检索一些数据。但是当我尝试使用 getTaskSent 方法检索数据时,出现以下错误。谁能建议我解决以下错误? E/AndroidRuntime(23159):
我正在开发需要使用 sqlite 从表中获取数据并在 ListView 中显示特定项目的 android 应用程序。当我尝试运行该应用程序时,该应用程序出现错误 getDatabaseLocked 并
我正在尝试在 Sqlite 数据库 中添加当前位置的纬度和经度。但是当我打开我的 Activity 时,它会崩溃并显示 android.database.sqlite.SQLiteOpenHelper
我无法理解我是如何错误地初始化数据库的: java.lang.NullPointerException at android.database.sqlite.SQLiteOpenHel
我是一名优秀的程序员,十分优秀!