Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLiteException:near";空";:编译时出现语法错误(代码1)::创建表_Java_Android_Sqlite - Fatal编程技术网

Java SQLiteException:near";空";:编译时出现语法错误(代码1)::创建表

Java SQLiteException:near";空";:编译时出现语法错误(代码1)::创建表,java,android,sqlite,Java,Android,Sqlite,请帮助我,当我运行我的应用程序使用想法时,我会遇到此错误 这是一个错误屏幕 下面是创建表的部分代码 private String getTableDDL(final Class<? extends GlassContract.Table> table) { return getTableDDL(table, GlassContract.getTableName(table)); } private String getTableDDL(final Class<

请帮助我,当我运行我的应用程序使用想法时,我会遇到此错误

这是一个错误屏幕

下面是创建表的部分代码

    private String getTableDDL(final Class<? extends GlassContract.Table> table) {
    return getTableDDL(table, GlassContract.getTableName(table));
}

private String getTableDDL(final Class<? extends GlassContract.Table> table, String tableName) {
    final StringBuilder sql = new StringBuilder(128);
    sql.append("create table ").append(tableName).append(" (");
    for (final Field field : table.getFields()) {
        if (field.getName().startsWith("_") || field.isAnnotationPresent(Deprecated.class))
            continue;
        try {
            sql.append(field.get(null));
        } catch (Exception ignore) {
        }
        try {
            final Field type = table.getDeclaredField("_SQL_" + field.getName() + "_TYPE");
            sql.append(' ').append(type.get(null));
        } catch (Exception ignore) {
            sql.append(" TEXT");
        }
        sql.append(',');
    }

    try {
        final Field type = table.getDeclaredField("_PK_COMPOSITE");
        sql.append("PRIMARY KEY(").append(type.get(null)).append(")");
        sql.append(',');
    } catch (Exception ignore) {
        // ignore
    }
    try {
        final Field type = table.getDeclaredField("_UNIQUE_COMPOSITE");
        sql.append("UNIQUE(").append(type.get(null)).append(")");
        sql.append(',');
    } catch (Exception ignore) {
        // ignore
    }

    sql.setLength(sql.length() - 1); // chop off last comma

    sql.append(')');
    Log.v(TAG, "DDL for " + table.getSimpleName() + ": " + sql);
    return sql.toString();
}

private String getTableDDL(final Class该
CREATE TABLE
语句中的第一个字段没有正确的名称(它是“null”)。这就是它爆炸的原因


还有更多字段的名称是非法的。

您真的想在表中创建名为
null
的文本字段吗


即使这样做有效(我不确定是否有效),您也在复制它,并创建两个名为
null

的同名字段。请在问题主体中发布错误消息。
getTableDDL()
实际返回什么?您不能使用保留关键字
null