android联系人更新崩溃

android联系人更新崩溃,android,android-contacts,Android,Android Contacts,我在“this.getContentResolver().applyBatch(ContactsContract.AUTHORITY,ops)”行中得到一个错误“索引2处的绑定值为null”; 只有当我尝试同时更新多个联系人时,才会发生此崩溃,并且对于少量联系人效果良好。 我将联系人显示在列表视图中,在使用复选框选择联系人并单击按钮时,将调用下面的方法。 即使应用程序崩溃,更新也会发生 public void updateContact(String contactId, String ty

我在“this.getContentResolver().applyBatch(ContactsContract.AUTHORITY,ops)”行中得到一个错误“索引2处的绑定值为null”; 只有当我尝试同时更新多个联系人时,才会发生此崩溃,并且对于少量联系人效果良好。 我将联系人显示在列表视图中,在使用复选框选择联系人并单击按钮时,将调用下面的方法。 即使应用程序崩溃,更新也会发生

  public void updateContact(String contactId, String type) {
    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
    String selectPhone = ContactsContract.Data.CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "='" +
            ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'" + " AND " + ContactsContract.CommonDataKinds.Phone.TYPE + "=?";
    String[] phoneArgs = new String[]{contactId, type};

    ops.add(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI)
            .withSelection(selectPhone, phoneArgs).build());
    try {
        this.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    } catch (RemoteException e) {
        e.printStackTrace();
    } catch (OperationApplicationException e) {
        e.printStackTrace();
    }
public void updateContact(字符串contactId,字符串类型){
ArrayList ops=新的ArrayList();
字符串选择Phone=contacts contract.Data.CONTACT_ID+“=”和“+contacts contract.Data.MIMETYPE+”=”+
ContactsContract.CommonDataTypes.Phone.CONTENT_ITEM_TYPE+“”“+”和“+ContactsContract.CommonDataTypes.Phone.TYPE+”=?”;
String[]phoneArgs=新字符串[]{contactId,type};
添加(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT\uURI)
.with selection(选择Phone、phoneArgs.build());
试一试{
this.getContentResolver().applyBatch(contacts contract.AUTHORITY,ops);
}捕获(远程异常){
e、 printStackTrace();
}捕获(操作应用程序异常e){
e、 printStackTrace();
}

我想这可以帮你解决问题------抱歉,因为我是新手,我无法从这些链接中解决问题。这些是你可以添加到项目中的直接答案------我做了与来自