【发布时间】:2013-12-05 14:49:41
【问题描述】:
我无法绕过这个异常。我错过了什么明显的东西吗?
堆栈跟踪
12-05 20:07:43.129: E/AndroidRuntime(4154): FATAL EXCEPTION: Thread-1470
12-05 20:07:43.129: E/AndroidRuntime(4154): java.lang.StringIndexOutOfBoundsException: length=0; regionStart=0; regionLength=6
12-05 20:07:43.129: E/AndroidRuntime(4154): at java.lang.String.startEndAndLength(String.java:593)
12-05 20:07:43.129: E/AndroidRuntime(4154): at java.lang.String.substring(String.java:1474)
12-05 20:07:43.129: E/AndroidRuntime(4154): at net.sqlcipher.database.SQLiteProgram.<init>(SQLiteProgram.java:69)
12-05 20:07:43.129: E/AndroidRuntime(4154): at net.sqlcipher.database.SQLiteQuery.<init>(SQLiteQuery.java:49)
12-05 20:07:43.129: E/AndroidRuntime(4154): at net.sqlcipher.database.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
12-05 20:07:43.129: E/AndroidRuntime(4154): at net.sqlcipher.database.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1420)
12-05 20:07:43.129: E/AndroidRuntime(4154): at net.sqlcipher.database.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1389)
使用的查询
查询=SELECT column1,max(datetime(creation_timestamp)) FROM table_name where dfs_id=? GROUP BY column2
(column1、column2、table_name 等是占位符 - 不是实际名称)
参数通过 = "a08eff29ee6a71dd_1381146091100_0002"
注意:我使用的是 SQLCipher(SQLCipher 的包装器),它应该与此异常无关。
【问题讨论】:
-
是你的表名
table? -
SQL无效:
table是表名需要反引号引起来,AND和GROUP BY之间没有表达式。但这些可能会导致其他一些异常。请在您进行查询的地方发布 Java 代码。
标签: java android sqlite sqlcipher