android获取电话号码的时候出现错误

   阅读
android获取电话号码的时候出现异常。
int nameIndextNumber=cursor.getColumnIndex(PhoneLookup.NUMBER); //获得电话号码number =cursor.getString(nameIndextNumber);

报java lang illegalStateException: get field slot from row 0 col -1 failed
//================================================
  ContentResolver cr=getContentResolver();//得到ContentResolver对象
  Cursor cursor =cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
  while(cursor.moveToNext()){
  int nameIndext=cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME); //获得电话簿中的姓名列
  String contact=cursor.getString(nameIndext);
  String number="";
  int nameIndextNumber=cursor.getColumnIndex(PhoneLookup.NUMBER); //获得电话号码
  number =cursor.getString(nameIndextNumber);
   
  sb.append(contact+":"+number+"\n");
  }
  cursor.close();
  tvView.setText(sb.toString());
[================================
这是书上的源码,基本是一字不差,真机调试和模拟器调试都试过了。。都会出现这样的情况。。模拟器上我还特意在电话本里添加了用户和电话号码。
而真机里原本就存了很多电话号码,获取姓名的时候就可以,但是获取电话号码的时候机会出现这种情况。。

------解决方案--------------------
你可以去官方的API文档里看看是不是对应的URI有电话号码这个属性可以访问,或者你可以把完整的工程项目发给我
阅读