Моя база данных в моем приложении работала нормально, затем я добавил одометр в базу данных. Теперь я получаю таблицу инспекций, в которой нет столбца с именем odometer:, при компиляции: INSERT INTO инспекции (codriver, одометр, водитель, datetime, vehicle_id, status, vehicle_type) VALUES (?,?,?,?,?,?,? ); ошибка в logcat. Я проверил мой адаптер БД, и код работает правильно, но по какой-то причине он не распознает добавленный новый столбец.
Вот код из БД
@Override
public void onCreate(SQLiteDatabase db)
{
String DATABASE_CREATE = "create table inspections ("
+ "_id integer primary key autoincrement, "
+ "vehicle_id string not null, "
+ "vehicle_type string not null, "
+ "datetime integer not null, "
+ "driver string not null, "
+ "codriver string , "
+ "status integer not null, "
+ "odometer string not null "
+ ");";
db.execSQL(DATABASE_CREATE);
}
вот код для основной базы данных
public class SignalSetDBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "db";
private static final int DATABASE_VERSION = 1;
public SignalSetDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Method is called during creation of the database
@Override
public void onCreate(SQLiteDatabase db) {
CurrentStateTable.onCreate(db);
HoursOfServiceTable.onCreate(db);
InspectionsTable.onCreate(db);
}
// Method is called during an upgrade of the database,
// e.g. if you increase the database version
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
CurrentStateTable.onUpgrade(database, oldVersion, newVersion);
HoursOfServiceTable.onUpgrade(database, oldVersion, newVersion);
InspectionsTable.onUpgrade(database, oldVersion, newVersion);
}
}
Я могу включить больше кода, но уверен, что ошибка в коде выше
обновление:
удалил приложение на эмуляторе, по-прежнему получая ту же ошибку. Вот логкат
03-28 12: 52: 59.135: D / dalvikvm (331): GC_EXTERNAL_ALLOC освободил 885 объектов / 63248 байт за 78 мс
03-28 12: 53: 05.695: D / dalvikvm (331): GC_FOR_MALLOC освободил 4480 объектов / 261760 байт за 73 мс
03-28 12: 53: 17.065: W / KeyCharacterMap (331): нет клавиатуры для идентификатора 0
03-28 12: 53: 17.065: W / KeyCharacterMap (331): использование таблицы ключей по умолчанию: /system/usr/keychars/qwerty.kcm.bin
03-28 12: 53: 28.615: I / база данных (331): sqlite вернул: код ошибки = 1, msg = в таблице проверок нет столбца с именем одометр
03-28 12: 53: 28.715: D / dalvikvm (331): GC_FOR_MALLOC освободил 8584 объекта / 420616 байт за 84 мс
03-28 12: 53: 28.715: E / База данных (331): Ошибка при вставке codriver = одометр = 4321 водитель = jim datetime = 1332964380 vehicle_id = ET 432 статус = 1 тип_транспорта = грузовик
03-28 12: 53: 28.715: E / Database (331): android.database.sqlite.SQLiteException: в таблице проверок нет столбца с именем одометр: при компиляции: INSERT INTO проверки (кодривер, одометр, водитель, дата-время, vehicle_id, status, vehicle_type) VALUES (?,?,?,?,?,?,?);
03-28 12: 53: 28.715: E / Database (331): в android.database.sqlite.SQLiteCompiledSql.native_compile (собственный метод)
03-28 12: 53: 28.715: E / Database (331): в android.database.sqlite.SQLiteCompiledSql.compile (SQLiteCompiledSql.java:91)
03-28 12: 53: 28.715: E / Database (331): в android.database.sqlite.SQLiteCompiledSql. (SQLiteCompiledSql.java:64)
03-28 12: 53: 28.715: E / Database (331): на android.database.sqlite.SQLiteProgram. (SQLiteProgram.java:80)
03-28 12: 53: 28.715: E / Database (331): в android.database.sqlite.SQLiteStatement. (SQLiteStatement.java:36)
03-28 12: 53: 28.715: E / Database (331): в android.database.sqlite.SQLiteDatabase.compileStatement (SQLiteDatabase.java:1145)
03-28 12: 53: 28.715: E / Database (331): в android.database.sqlite.SQLiteDatabase.insertWithOnConflict (SQLiteDatabase.java:1536)
03-28 12: 53: 28.715: E / Database (331): в android.database.sqlite.SQLiteDatabase.insert (SQLiteDatabase.java:1410)
03-28 12: 53: 28.715: E / База данных (331): в com.signalsetapp.database.InspectionDBAdapter.insertInspection (InspectionDBAdapter.java:54)
03-28 12: 53: 28.715: E / База данных (331): на com.signalsetapp.report.save (report.java:120)
03-28 12: 53: 28.715: E / База данных (331): на java.lang.reflect.Method.invokeNative (собственный метод)
03-28 12: 53: 28.715: E / База данных (331): на java.lang.reflect.Method.invoke (Method.java:521)
03-28 12: 53: 28.715: E / База данных (331): на android.view.View $ 1.onClick (View.java:2067)
03-28 12: 53: 28.715: E / База данных (331): на android.view.View.performClick (View.java:2408)
03-28 12: 53: 28.715: E / База данных (331): на android.view.View $ PerformClick.run (View.java:8816)
03-28 12: 53: 28.715: E / База данных (331): на android.os.Handler.handleCallback (Handler.java:587)
03-28 12: 53: 28.715: E / База данных (331): на android.os.Handler.dispatchMessage (Handler.java:92)
03-28 12: 53: 28.715: E / База данных (331): на android.os.Looper.loop (Looper.java:123)
03-28 12: 53: 28.715: E / база данных (331): на android.app.ActivityThread.main (ActivityThread.java:4627)
03-28 12: 53: 28.715: E / База данных (331): на java.lang.reflect.Method.invokeNative (собственный метод)
03-28 12: 53: 28.715: E / База данных (331): на java.lang.reflect.Method.invoke (Method.java:521)03-28 12: 53: 28.715: E / База данных (331): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868)
03-28 12: 53: 28.715: E / База данных (331): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626)
03-28 12: 53: 28.715: E / База данных (331): at dalvik.system.NativeStart.main (собственный метод)