" sqlite3:错误:选项太多:" INTO" "在Android应用程序中

时间:2014-03-12 11:47:16

标签: android sqlite

在我的Android应用程序中,我试图使用以下代码行:

Process runJob = Runtime.getRuntime().exec("sqlite3 /data/data/com.android.launcher/databases/launcher.db \"INSERT INTO favorites VALUES(100,'someText');\"");

但它不起作用。在stderr中有一条消息

03-12 13:41:44.841: I/some(3084): stderr = sqlite3: Error: too many options: "INTO"
03-12 13:41:44.841: I/some(3084): stderr = Use -help for a list of options.

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

exec(String)将输入拆分为空格,并且不像shell那样遵守"引号。

改为使用exec(String[])

...exec(new String[] {
    "sqlite3",
    "/data/data/com.android.launcher/databases/launcher.db",
    "INSERT INTO favorites (column1, column2) VALUES(100,'someText');"
    });

(没有考虑到你正在尝试做的事情实际上是有意义的。)

答案 1 :(得分:0)

为避免插入操作中出现任何冲突,请将insert与属性和值一起使用,如下所示:

Process runJob = Runtime.getRuntime().exec("sqlite3 /data/data/com.android.launcher/databases/launcher.db \"INSERT INTO favorites (column1, column2) VALUES(100,'someText');\"");