Я создал приложение, которое хранит значения в базе данных и извлекает сохраненные данные. При запуске приложения в режиме запуска все работает нормально (значения сохраняются и извлекаются успешно), но когда я запускаю в режиме отладки, процесс вызывает исключение IllegalStateException и до сих пор не нашел причины.Проблема с базой данных: как диагностировать и устранять проблему?
Метод, который извлекает объект записи является следующие:
public Recording getRecording(String filename) {
Recording recording = null;
String where = RECORDING_FILENAME + "='" + filename + "'";
Log.v(TAG, "retrieving recording: filename = " + filename);
try {
cursor = db.query(DATABASE_TABLE_RECORDINGS, new String[]{RECORDING_FILENAME, RECORDING_TITLE, RECORDING_TAGS, RECORDING_PRIVACY_LEVEL, RECORDING_LOCATION, RECORDING_GEO_TAGS, RECORDING_GEO_TAGGING_ENABLED, RECORDING_TIME_SECONDS, RECORDING_SELECTED_COMMUNITY}, where, null, null, null, null);
if (cursor.getCount() > 0) {
cursor.moveToFirst();
//String filename = c.getString(0);
String title = cursor.getString(1);
String tags = cursor.getString(2);
int privacyLevel = cursor.getInt(3);
String location = cursor.getString(4);
String geoTags = cursor.getString(5);
int iGeoTaggingEnabled = cursor.getInt(6);
String recordingTime = cursor.getString(7);
String communityID = cursor.getString(8);
cursor.close();
recording = new Recording(filename, title, tags, privacyLevel, location, geoTags, iGeoTaggingEnabled, recordingTime, communityID);
}
}
catch (SQLException e) {
String msg = e.getMessage();
Log.w(TAG, msg);
recording = null;
}
return recording;
}
и вызывается из другого класса (Настройки):
private Recording getRecording(String filename) {
dbAdapter = dbAdapter.open();
Recording recording = dbAdapter.getRecording(filename);
dbAdapter.close();
return recording;
}
Во время работы через код выше все работает нормально, но то я замечаю исключение в другом потоке: alt text http://img509.imageshack.us/img509/862/illegalstateexception.jpg
и не знаю ни того, что возможно причину этого исключения и как отлаживать код из этого потока, чтобы диагностировать причину.
Я был бы очень благодарен, если бы кто-нибудь знал, что является возможной проблемой здесь.
Спасибо!
Какая полная стек исключений? Или, по крайней мере, соответствующие биты? – MattC