为什么我有Java Null Exeption? [英] Why I Got Java Null Exeption?

查看:33
本文介绍了为什么我有Java Null Exeption?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在MainActivity中编写了一个方法,当我从同一个活动(main)调用它时它运行正常但是当我从另一个类调用它时我得到了这个错误

i为android编写这个程序。 br />


Logcat输出:

I wrote a method in MainActivity and when i call it from same activity (main) it run correctly but when i call it from another class i get this error
i write this program for android.

Logcat output:

04-22 19:53:11.895  16739-16739/mohammadi.behnam.lstcall I/##Contactadder##﹕ +989333346529
04-22 19:53:11.895  16739-16739/mohammadi.behnam.lstcall D/AndroidRuntime﹕ Shutting down VM
04-22 19:53:11.895  16739-16739/mohammadi.behnam.lstcall W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41d0bc08)
04-22 19:53:11.895  16739-16739/mohammadi.behnam.lstcall E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: mohammadi.behnam.lstcall, PID: 16739
    java.lang.NullPointerException
            at android.content.ContextWrapper.getContentResolver(ContextWrapper.java:105)
            at mohammadi.behnam.lstcall.MainActivity.Contactadder(MainActivity.java:236)
            at mohammadi.behnam.lstcall.IncomingCall$MyPhoneStateListener.onCallStateChanged(IncomingCall.java:57)
            at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:461)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5635)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at dalvik.system.NativeStart.main(Native Method)







public void Contactadder(String incomingNumber)
    {
    
        Log.i("##Contactadder##", incomingNumber);
        String RawcID="";

        String[] projectionPhones = {
                ContactsContract.Data.DISPLAY_NAME,
                ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID,
                ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
                ContactsContract.CommonDataKinds.Phone.NUMBER,
                ContactsContract.CommonDataKinds.Phone.TYPE,
                ContactsContract.CommonDataKinds.Phone.LABEL
        };


        ContentResolver cr = this.getContentResolver();

        Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projectionPhones,
                ContactsContract.CommonDataKinds.Phone.NUMBER +"=?", new String[]{incomingNumber}, null);

        while(pCur.moveToNext())
        {
            RawcID=pCur.getString(1);
        }


   
        ContentValues values = new ContentValues();

        values.clear();
        values.put(ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID, RawcID);
   

        getContentResolver().insert(ContactsContract.Data.CONTENT_URI
                , values);

    }



我想称之为方法的服务类:


service class that i wanna call that method:

MainActivity ma=new MainActivity();
ma.Contactadder("+9183331111");

推荐答案

MyPhoneStateListener.onCallStateChanged(IncomingCall.java:57)
at android.telephony.PhoneStateListener
MyPhoneStateListener.onCallStateChanged(IncomingCall.java:57) at android.telephony.PhoneStateListener


2.handleMessage(PhoneStateListener.java:461)
在android.os.Handler.dispatchMessage(Handler.java:102)
在android.os.Looper.loop (Looper.java:146)
在android.app.ActivityThread.main(ActivityThread.java:5635)
at java.lang.reflect.Method.invokeNative(Native Method)
at java .lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit
2.handleMessage(PhoneStateListener.java:461) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5635) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit


MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(Native Method)
MethodAndArgsCaller.run(ZygoteInit.java:1291) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) at dalvik.system.NativeStart.main(Native Method)







public void Contactadder(String incomingNumber)
    {
    
        Log.i("##Contactadder##", incomingNumber);
        String RawcID="";

        String[] projectionPhones = {
                ContactsContract.Data.DISPLAY_NAME,
                ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID,
                ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
                ContactsContract.CommonDataKinds.Phone.NUMBER,
                ContactsContract.CommonDataKinds.Phone.TYPE,
                ContactsContract.CommonDataKinds.Phone.LABEL
        };


        ContentResolver cr = this.getContentResolver();

        Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projectionPhones,
                ContactsContract.CommonDataKinds.Phone.NUMBER +"=?", new String[]{incomingNumber}, null);

        while(pCur.moveToNext())
        {
            RawcID=pCur.getString(1);
        }


   
        ContentValues values = new ContentValues();

        values.clear();
        values.put(ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID, RawcID);
   

        getContentResolver().insert(ContactsContract.Data.CONTENT_URI
                , values);

    }



我想称之为方法的服务类:


service class that i wanna call that method:

MainActivity ma=new MainActivity();
ma.Contactadder("+9183331111");


这篇关于为什么我有Java Null Exeption?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆