Android 为什么此代码返回异常?
有人能告诉我,为什么会出现这种代码:Android 为什么此代码返回异常?,android,database,nullpointerexception,Android,Database,Nullpointerexception,有人能告诉我,为什么会出现这种代码: Boolean done = db.delete(ACCOUNTS_TABLE, KEY_ROWID, getIds(accounts)) > 0; 是否返回此异常 05-08 10:09:36.074:E/AndroidRuntime(1955):java.lang.NullPointerException 函数返回字符串数组,所以一切都应该正常 解决方案 在删除数据库上被调用的close()之前 但现在它返回此异常: android.databa
Boolean done = db.delete(ACCOUNTS_TABLE, KEY_ROWID, getIds(accounts)) > 0;
是否返回此异常
05-08 10:09:36.074:E/AndroidRuntime(1955):java.lang.NullPointerException
函数返回字符串数组,所以一切都应该正常
解决方案
在删除数据库上被调用的close()之前
但现在它返回此异常:
android.database.sqlite.SQLiteBindOrColumnIndexOutOfRangeException:绑定或列索引超出范围:句柄0x1eef920
如果这确实是异常中提到的有问题的行,那几乎肯定是因为
db
是空引用,或者可能是因为getIds
抛出异常
在没有更多信息的情况下有点难以判断,但首先,我会在调用之前或作为
try/catch
块的一部分,输入一些东西来转储db
变量。提供更多代码和堆栈跟踪。因为这里的db可能是空的。最有可能的是,db
是null
,但是如果没有看到更多的代码和完整的堆栈跟踪,就不能说了。谢谢,在我调用delete之前,请删除一个关闭的db。但是为什么接下来它会返回这个异常呢android.database.sqlite.SQLiteBindOrColumnIndexOutOfRangeException:绑定或列索引超出范围:从数据库中的函数处理0x1eef920
ID。