java.lang.IllegalArgumentException: Too many bind arguments. 1 arguments were provided but the statement needs 0 arguments.
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:68)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1491)
at com.handaer.mobilepstn.db.dao.DBOperatorHelper.deleteContact(DBOperatorHelper.java:277)
at com.handaer.mobilepstn.manager.ContactsManager.delContact(ContactsManager.java:44)
at com.handaer.mobilepstn.test.MethodTest.testDelContact(MethodTest.java:99)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:68)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1491)
at com.handaer.mobilepstn.db.dao.DBOperatorHelper.deleteContact(DBOperatorHelper.java:277)
at com.handaer.mobilepstn.manager.ContactsManager.delContact(ContactsManager.java:44)
at com.handaer.mobilepstn.test.MethodTest.testDelContact(MethodTest.java:99)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
做项目时出现了以上错误,表面看说是绑了过多的参数,后来才发现是下面这句代码 少加了问号,以后要多注意,在此做个记录,以后注意。
db.delete(DBConstants.Tables.RawContacts.TABLENAME, DBConstants.Tables.RawContacts.Fields.ID+"=?", new String[]{contactId+""});