public long addPhone(String name,String number){
// TODO Auto-generated method stub
ContentValues values=new ContentValues();
Uri rawContactUri=getContentResolver().insert(RawContacts.CONTENT_URI, values);
long rawContactId=ContentUris.parseId(rawContactUri);
                   .....
return rawContactId;

}
为什么提示Uri rawContactUri=getContentResolver().insert(RawContacts.CONTENT_URI, values);有错

解决方案 »

  1.   

    运行时错误还是编译就错了,log
      

  2.   


    Uri rawContactUri=getContentResolver().insert(RawContacts.CONTENT_URI, values);
    改为
    Uri rawContactUri = this.getContext().getContentResolver().insert(RawContacts.CONTENT_URI, values);
    或者改为
    Uri rawContactUri = this.getBaseContext().getContentResolver().insert(RawContacts.CONTENT_URI, values);
      

  3.   

    楼主确认当前的类是Context的子类?有getContentResolver()这个方法?
      

  4.   

    改了,不对
    log:
    08-22 08:19:21.254: W/dalvikvm(187): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
    08-22 08:19:21.265: E/AndroidRuntime(187): Uncaught handler: thread main exiting due to uncaught exception
    08-22 08:19:21.275: E/AndroidRuntime(187): java.lang.NullPointerException
    08-22 08:19:21.275: E/AndroidRuntime(187):  at com.zk.activity.AddPhone.addPhone(AddPhone.java:34)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at com.zk.activity.AddCode$1.onClick(AddCode.java:45)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.view.View.performClick(View.java:2364)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.view.View.onTouchEvent(View.java:4179)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.widget.TextView.onTouchEvent(TextView.java:6541)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.view.View.dispatchTouchEvent(View.java:3709)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.os.Handler.dispatchMessage(Handler.java:99)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.os.Looper.loop(Looper.java:123)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at android.app.ActivityThread.main(ActivityThread.java:4363)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at java.lang.reflect.Method.invokeNative(Native Method)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at java.lang.reflect.Method.invoke(Method.java:521)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    08-22 08:19:21.275: E/AndroidRuntime(187):  at dalvik.system.NativeStart.main(Native Method)
    08-22 08:19:21.285: I/Process(51): Sending signal. PID: 187 SIG: 3
    08-22 08:19:21.294: I/dalvikvm(187): threadid=7: reacting to signal 3
    08-22 08:19:21.334: I/dalvikvm(187): Wrote stack trace to '/data/anr/traces.txt'
    08-22 08:19:23.364: I/Process(187): Sending signal. PID: 187 SIG: 9
      

  5.   

    所有代码:
    public class AddPhone extends Activity { public long addPhone(String name,String number){
    // TODO Auto-generated method stub
    ContentValues values=new ContentValues();
    Uri rawContactUri= this.getBaseContext().getContentResolver().insert(RawContacts.CONTENT_URI, values);
    Log.i("ddd", name);
    long rawContactId=ContentUris.parseId(rawContactUri);


    if(name!=""){
    values.clear();
    values.put(Data.RAW_CONTACT_ID, rawContactId);
    values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
    values.put(StructuredName.GIVEN_NAME, name);
    getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

    }
    if(number!=""){
    values.clear();
    values.put(Data.RAW_CONTACT_ID, rawContactId);
    values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
    values.put(Phone.NUMBER, number);
    values.put(Phone.TYPE, Phone.TYPE_MOBILE);
    getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
    }
    return rawContactId;

    }}
    哪位大侠会,帮帮忙,感激呀!!!
      

  6.   

    是空指针,那句话里某个引用指向null了应该是values这个,你调用values.put()方向在ContentValues values=new ContentValues();
    这句话后面写入一条数据线
      

  7.   

    空了. ContentValues包裹你的数据.就相当于把你的数据对象克隆给它封装到ContentValues.
    你的ContentValues中没有数据为空