Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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 Can';t创建android sqlite数据库_Java_Android_Database_Sqlite - Fatal编程技术网

Java Can';t创建android sqlite数据库

Java Can';t创建android sqlite数据库,java,android,database,sqlite,Java,Android,Database,Sqlite,我正在从事一个android项目,在尝试创建数据库时,我似乎有什么地方出错了,这是我的代码,它假设创建一个包含多个表的数据库,但它不创建任何表,请帮助我在此处找到错误:) 这是我跑完后在logcat里看到的 05-16 10:55:02.407 17033-17033/?D/AndroidRuntime:>>>>>>>>AndroidRuntime 启动com.android.internal.os.RuntimeInit只是一个猜测,因为您还没有发布日志,但我认为您需要在表名和第一个打开的括号

我正在从事一个android项目,在尝试创建数据库时,我似乎有什么地方出错了,这是我的代码,它假设创建一个包含多个表的数据库,但它不创建任何表,请帮助我在此处找到错误:)

这是我跑完后在logcat里看到的

05-16 10:55:02.407 17033-17033/?D/AndroidRuntime:>>>>>>>>AndroidRuntime
启动com.android.internal.os.RuntimeInit只是一个猜测,因为您还没有发布日志,但我认为您需要在表名和第一个打开的括号之间留出一个空格。例如:

db.execSQL("CREATE TABLE "+ DataBase.Table_Subject + " (" +
        DataBase.sub_col1 + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," + 
        DataBase.sub_col2 + " TEXT NOT NULL," +
        DataBase.sub_col3 + " INTEGER )"
    );

db.execSQL("CREATE TABLE " + DataBase.Table_Tasks + " (" + 
        DataBase.Task_col1 + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +
        DataBase.Task_col2 + " TEXT," +
        DataBase.Task_col3 + " INTEGER NOT NULL," +
        DataBase.Task_col4 + " INTEGER," +
        DataBase.Task_col5 + " INTEGER )"
    );

db.execSQL("CREATE TABLE " + DataBase.Table_Class + " (" + 
         DataBase.class_Col1 + " INTEGER PRIMARY KEY AUTOINCREMENT," +
         DataBase.class_col2 + " TEXT," +
         DataBase.class_Col3 + " INTEGER," +
         DataBase.class_Col4 + " TEXT," +
         DataBase.class_Col5 + " TEXT," +
         DataBase.class_Col6 + " TEXT," +
         DataBase.class_Col7 + " TEXT," +
         DataBase.class_Col8 + " TEXT )"
     );
编辑:还注意到,您也没有在字段名后始终添加空格。请将所有
CREATE TABLE
语句转储到logcat,并尝试按上述方式对语句进行整洁的编码,以便更容易发现连接错误

db.execSQL("CREATE TABLE "+ DataBase.Table_Subject + " ("+DataBase.sub_col1 +" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "
        + DataBase.sub_col2 + " TEXT NOT NULL, " +
          DataBase.sub_col3 + " INTEGER);");


    db.execSQL("CREATE TABLE "+ DataBase.Table_Tasks + " ("+DataBase.Task_col1 + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
        DataBase.Task_col2 + " TEXT, " +
        DataBase.Task_col3 + " INTEGER NOT NULL, " +
        DataBase.Task_col4 + " INTEGER, " +
        DataBase.Task_col5 + " INTEGER);");

db.execSQL("CREATE TABLE " + DataBase.Table_Class + " ("+DataBase.class_Col1 + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
         DataBase.class_col2 + " TEXT, " +
         DataBase.class_Col3 + " INTEGER, " +
         DataBase.class_Col4 + " TEXT, " +
         DataBase.Class_Col5 + " TEXT, "+
         DataBase.class_Col6 + " TEXT, " +
         DataBase.class_Col7 + " TEXT, " +
         DataBase.class_Col8 + " TEXT);");
希望这能奏效。 不在SQL语句的末尾,并且在列名之后和数据类型之前不提供空格


由于没有logcat信息,如果调用oncreate(),那么这段代码应该可以工作。如果这不起作用,请通过添加日志让我知道是否调用了onCreate()。

您能在此处发布logcat错误吗?通过查看代码,我能想到的唯一一件事就是在表名和
CREATE table
语句中的第一个
之间留出一个空格。包括“它显示了一个错误”在内的每个问题或者类似的需要说明错误是什么。缺少空格,请检查连接的strings@MichaelDodd职位是edited@AnsamM.AbdEl-但是Rasoul仍然没有显示任何有用的信息。请查找以
E/
开头的一行,其中包含由以下原因引起的短语
以何种方式不起作用?是否可以包含logcat,以及我在上面发布的建议?(即,查找包含由
引起的
的行)也适用于
第4类
-去掉
“分钟”结尾处的空格
db.execSQL("CREATE TABLE "+ DataBase.Table_Subject + " ("+DataBase.sub_col1 +" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "
        + DataBase.sub_col2 + " TEXT NOT NULL, " +
          DataBase.sub_col3 + " INTEGER);");


    db.execSQL("CREATE TABLE "+ DataBase.Table_Tasks + " ("+DataBase.Task_col1 + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
        DataBase.Task_col2 + " TEXT, " +
        DataBase.Task_col3 + " INTEGER NOT NULL, " +
        DataBase.Task_col4 + " INTEGER, " +
        DataBase.Task_col5 + " INTEGER);");

db.execSQL("CREATE TABLE " + DataBase.Table_Class + " ("+DataBase.class_Col1 + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
         DataBase.class_col2 + " TEXT, " +
         DataBase.class_Col3 + " INTEGER, " +
         DataBase.class_Col4 + " TEXT, " +
         DataBase.Class_Col5 + " TEXT, "+
         DataBase.class_Col6 + " TEXT, " +
         DataBase.class_Col7 + " TEXT, " +
         DataBase.class_Col8 + " TEXT);");