Having gotten to the end of page 296 (Implicit Intents) the app crashed with LogCat reporting it couldn’t find ‘suspect’ in the database. I tried to diagnose the cause but failed and so I reverted to a backup (End of Chapter 13). However upon reaching the end of 14.6 (Creating crime table) Android Studio flagged the comma in this line:
CrimeTable.Cols.DATE + ", " +
with this error:
')',<column constraint>, <type name> or comma expected, got ';'
I checked to whole onCreate function I could see no difference to that in the book. I typed over the comma with a comma and the error jumped to the previous line but flagging the end quotation mark (same error). I then commented the whole thing and retyped it out but the same error popped up so I copied the onCreate function from the Solutions File and that too had the same error.
If I ‘Run the App’ on my device it crashes on load (obviously) and LogCat reports this:
Caused by: android.database.sqlite.SQLiteException: near ";": syntax error (code 1): , while compiling: create table crimes( _id integer primary key autoincrement, uuid, title, date;, solved)
In between all this I had closed Android Studio, restarted laptop and relaunched Android Studio (thinking it might be a glitch as it did not flag this when I managed to get to page 296) but it still reports the same error. As far as I can see no-one else has had this issue which is why it is baffling me.
Any ideas?
Here is my code for CrimeBaseHelper.java:
Summary
package com.bignerdranch.android.criminalintent.database;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.bignerdranch.android.criminalintent.database.CrimeDbSchema.CrimeTable;
public class CrimeBaseHelper extends SQLiteOpenHelper {
private static final int VERSION = 1;
private static final String DATABASE_NAME = “crimeBase.db”;
public CrimeBaseHelper(Context context) {
super(context, DATABASE_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + CrimeTable.NAME + "(" +
" _id integer primary key autoincrement, " +
CrimeTable.Cols.UUID + ", " +
CrimeTable.Cols.TITLE + ", " +
CrimeTable.Cols.DATE + ", " +
CrimeTable.Cols.SOLVED +
")"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}