현재 제 1 번째 Android 앱을 개발 중이며 해결할 수없는 문제가 발생합니다. 3월 7일부터 18일까지 : 41 : 04.414 : ERROR/AndroidRuntime (3480) : 내 자신의 데이터베이스에 데이터를 삽입하려고하면 오류가 java.lang.NullPointerException이ContentValues를 사용하여 저장된 값의 순서가 올바르지 않습니다. 이유는 무엇입니까?
테이블에 삽입 내 코드는 다음과 같습니다
public long createRecord(String created_time, String modified_time,
long reading, String unit, String period, String remark) {
ContentValues values = new ContentValues(6);
values.put(KEY_CREATED_TIME, created_time);
values.put(KEY_MODIFIED_TIME, modified_time); //System.out.println(values);
values.put(KEY_RECORD, reading); //System.out.println(values);
values.put(KEY_UNIT, unit); //System.out.println(values);
values.put(KEY_PERIOD, period);// System.out.println(values);
values.put(KEY_REMARK, remark);
System.out.println(values);
return mDb.insert(DATABASE_TABLE, null , values);
}
이것은 내 DatabaseHelper 클래스의 인스턴스 인 Adapter 클래스 아래에 있습니다. 내 DatabaseHelper 클래스의 경우 assets 폴더의 데이터베이스를 시스템 데이터베이스 폴더로 복사 할 수 있습니다. 하지만 테이블에 데이터를 만들 수는 없지만 "값"을 인쇄하려고 시도한 결과 다음과 같이 나타났습니다.
created_time = 2010-07-18 03:41:04 remark = on unit = mg/dL reading = 67 period = Before Meal modified_time = 00 : 00 : 00 그것이 어쩔 수없는 방식 이었기 때문에 이것이 문제가 될 것이라고 생각했습니다. 아무도 도와 줄 수 있습니까? 온라인에서 검색했지만이 정보는 그다지 많지 않습니다. 미리 감사드립니다 :)
예, "null"을 나타내는 mDb를 확인했습니다. 이 이유를 알 수 있고 어떻게 해결할 수 있습니까? 감사합니다 – Wen
참조를 얻은 곳에서 문제가 생겼습니다 :'SQLiteDatabase mDb = // null here;' – yanchenko
좋아요, mDb = mDbHelper.getWritableDatabase();를 추가했습니다. 이제 코드는 에뮬레이터 모드에서는 제대로 작동하지만 휴대 전화에서는 정상적으로 작동하지 않습니다. 장치에 코드를 실행하면 오류 메시지가 표시됩니다. 07-18 13 : 51 : 49.595 : 오류/데이터베이스 (2022) 삽입 오류 : remark = ol 기간 = 식사 전 modified_time = 00 : 00 : 00 unit = mg/dL 읽기 = 68 created_time = 2010-07-18 13:51:49 07-18 13 : 51 : 49.595 : 오류/데이터베이스 (2022) : android.database.sqlite.SQLiteException : 해당 테이블 없음 : 레코드 :, 컴파일하는 동안 : INSERT INTO 레코드 (remark, period, modified_time, unit, reading, created_time) VALUES (?,?,?,?,?,?); 조언이 있으십니까? – Wen