无法运行程序它说无法识别的令牌和崩溃

时间:2016-05-02 15:31:08

标签: android sqlite android-sqlite

这是它所谈论的代码

public static final String[] MENU_COLUMNS = {FOOD_NAME,CARBS,SERVING};
private static final String REST = "CREATE TABLE " +MENU_COLUMNS +"(" + FOOD_NAME +" TEXT , "+ CARBS +" TEXT, " + SERVING + " TEXT)";

这是错误代码

java.lang.RuntimeException: Unable to get provider   com.example.diabeticdiner.LocationProvider: android.database.sqlite.SQLiteException: unrecognized token: "[Ljava.lang.String;@75ed766(Food_name TEXT PRIMARY KEY, Carbs TEXT, Serving TEXT)" (code 1): , while compiling: CREATE TABLE [Ljava.lang.String;@75ed766(Food_name TEXT PRIMARY KEY, Carbs TEXT, Serving TEXT)

1 个答案:

答案 0 :(得分:3)

public static final String[] MENU_COLUMNS = {FOOD_NAME,CARBS,SERVING};
private static final String REST = "CREATE TABLE " +MENU_COLUMNS ...

MENU_COLUMNS不会转换为有效表名的字符串。它是一个字符串数组,toString()就会生成类似[Ljava.lang.String;@75ed766的结果。

将代码更改为

public static final String[] MENU_COLUMNS = {FOOD_NAME,CARBS,SERVING};
private static final String MENU_TABLE = "menu"; // or whatever your table name should be
private static final String REST = "CREATE TABLE " + MENU_TABLE ...