Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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
Android 在ICS(4.0.4)中获取SQLite语法错误,但在其他版本上可以正常工作?_Android_Database_Sqlite - Fatal编程技术网

Android 在ICS(4.0.4)中获取SQLite语法错误,但在其他版本上可以正常工作?

Android 在ICS(4.0.4)中获取SQLite语法错误,但在其他版本上可以正常工作?,android,database,sqlite,Android,Database,Sqlite,SQL是 INSERT INTO "quotes" VALUES(1,1,1,'This is a quote','This is a quote in german','By Me','jackson',1,1,1305587611,'0','Thriller'); 在从文本文件读取该行之后,我使用db.execSQL执行该行 InputStream is = myContext.getResources().openRawResource(R.raw.quotesi

SQL是

INSERT INTO "quotes" VALUES(1,1,1,'This is a quote','This is a quote in german','By Me','jackson',1,1,1305587611,'0','Thriller');
在从文本文件读取该行之后,我使用db.execSQL执行该行

            InputStream is = myContext.getResources().openRawResource(R.raw.quotesinsert);
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String readLine = null;
            db.execSQL(QUOTE_DB_CREATE);                    
            while ((readLine = br.readLine()) != null) {
                db.execSQL(readLine); 
            }
这适用于所有其他版本的Android,但在ICS(4.0.4)上崩溃


我已经在一个独立的SQLite程序中尝试了创建表的SQL和这个insert,它们都工作得很好,这里会发生什么?

确保SQL语句是单语句(SQL语句前面的空格和后面的空格)

您的文本文件是用UTF-8编码的,并且是用一个程序创建的,该程序在开头插入一个字符

Java/Android运行时在读取文件时不会删除此字符;你必须自己做这件事。

(此行为是故意的;请参阅和。)

请显示生成此
插入
命令的代码。插入命令不是生成的,而是从文本文件原样读取并使用db.execSQL(sqlcommand)执行的。请参阅编辑。在执行插入命令之前记录每个插入命令,并查看生成此错误消息的命令。如果您的文件中有德语字符,则可能在编码方面存在一些问题。有趣的是,这只针对ICS进行了更改?因为它似乎适用于之前和之后的所有版本。无论如何,我已经决定完全删除文件读取功能,现在所有数据都作为对象在Java类中,我用它们创建ContentValue,并使用SQLiteDatabase.insert方法插入数据。非常感谢。
01-14 02:07:46.271: E/AndroidRuntime(1802): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.foo.quotesapp/com.foo.quotesapp.QuoteList}: android.database.sqlite.SQLiteException: near "?INSERT": syntax error