我正在尝试从内容提供商处获取联系人照片,并在此查询中遇到某种问题。
Cursor photo = cr.query(
PicURI,
new String[] {
CommonDataKinds.Photo.PHOTO
},
Data._ID + "=?",
new String[] { photoId },
null);
这是来自logcat的相关行:
java.lang.IllegalArgumentException: the bind value at index 1 is null
经过一些测试后,我发现如果其中一个联系人没有设置图片,我会收到此异常。
我搜索并发现this同样的问题。好像这是一个错误。我无法解决它。任何帮助将不胜感激。
答案 0 :(得分:2)
您当然不希望找到id = null的照片,因此您必须使用以下代码:
if (photoId != null) {
//your code here
}
如果您发布了完整的堆栈跟踪,那就太好了。
答案 1 :(得分:1)
你是对的 - 这是同样的问题:
http://code.google.com/p/android/issues/detail?id=7636
你也是正确的,这是一个错误。
“bug”在您的代码中。您需要检查“nulls”的参数,如果您的任何输入参数为null,则不应该进行查询或更新!
两种选择:
if (myphoto[i] == null)
query.bindNull(i)
......或......
if (myphoto[i] != null)
query ()
在调用API之前,您有责任验证和清理您的数据......
... IMHO