我正在使用以下方法打开我的SQLite数据库。打开数据库SQLite时出错
private void open() {
database = dbHelper.getReadableDatabase();
}
他是dbHelper的相关部分。 sql.xml的
public void onCreate(SQLiteDatabase la_db) {
String s;
try {
InputStream in = context.getResources().openRawResource(R.raw.sql);
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document doc = builder.parse(in, null);
NodeList statements = doc.getElementsByTagName("statement");
for (int i = 0; i < statements.getLength(); i++) {
s = statements.item(i).getChildNodes().item(0).getNodeValue();
la_db.execSQL(s);
}
} catch (Throwable t) {
Toast.makeText(context, t.toString(), 50000).show();
}
}
部分
....
<statement>
CREATE TABLE IF NOT EXISTS la_table (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
suggest_text_1 VARCHAR(100),
test_value_1 VARCHAR(100),
test_value_2 VARCHAR(100),
test_type_1 VARCHAR(50),
suggest_intent_data VARCHAR(5))
</statement>
<statement>INSERT INTO la_table VALUES(1,"Sodium (Na)","310 - 330 mg/dl",null,"Serum","1")</statement>
<statement>INSERT INTO la_table VALUES(2,"Potassium (K)","14 - 20 mg/dl","3.5 - 5 mmol/L or mEq/L","Serum","2")</statement>
.....
而且我得到这个错误:
01-01 00:59:38.725: E/AndroidRuntime(2060): Caused by: java.lang.NullPointerException
01-01 00:59:38.725: E/AndroidRuntime(2060): at com.assistant.lab.royale.DataSource.open(DataSource.java:42)
01-01 00:59:38.725: E/AndroidRuntime(2060): at com.assistant.lab.royale.DataSource.listViewCursor(DataSource.java:25)
01-01 00:59:38.725: E/AndroidRuntime(2060): at com.assistant.lab.royale.LabAssistant.onCreate(LabAssistant.java:24)
01-01 00:59:38.725: E/AndroidRuntime(2060): at android.app.Activity.performCreate(Activity.java:4465)
发布初始化'dbHelper'变量的代码。 – 2012-03-24 16:48:31
@BorisStrandjev我初始化使用'私人DatabaseHelper dbHelper;'。 – 2012-03-24 16:53:43
你没有向我们展示堆栈框架中提到的代码 – 2012-03-24 16:55:00