【发布时间】:2018-09-26 12:09:04
【问题描述】:
我正在介绍 android 编程课程,遇到一些添加到 sqlite 数据库的问题
任何可能导致此错误的建议。我认为这与没有正确分配 mDatabase 字段变量有关。
似乎问题在于 addCustomer 函数中的 mDatabase 变量需要不同的上下文。
private static ContentValues getContentValues(Customer customer) {
ContentValues values = new ContentValues();
values.put(UUID, customer.getId().toString());
values.put(FULL_NAME, customer.getName());
values.put(ADDRESS, customer.getAddress());
values.put(CREDIT_CARD_NUMBER, customer.getCreditCardNumber());
values.put(EMAIL, customer.getEmail());
values.put(SESSIONS_REMAINING, customer.getSessionsRemaining());
values.put(PRINT_RECEIPT, customer.getPrintReceipt() ? 1 : 0);
values.put(EMAIL_RECEIPT, customer.getEmailReceipt() ? 1 : 0);
return values;
}
public void addCustomer(Customer c) {
ContentValues values = getContentValues(c);
mDatabase.insert(CustomerDbSchema.CustomerTable.NAME, null, values);
Log.d("DATABASE", "Customer Added");
}
以下 Github 上的文件链接:
【问题讨论】:
-
发布日志错误
-
java.lang.NullPointerException: 尝试调用虚拟方法 'long android.database.sqlite.SQLiteDatabase.insert(java.lang.String, java.lang.String, android.content.ContentValues)'在空对象引用上