由于ContentResolver()导致的Android java.lang.NullPointerException

时间:2014-06-09 18:48:51

标签: java android exception null

我正在尝试使用DexClassLoader

动态加载类

我在主类中加载了main()方法

  

我的主要类有main()方法

public class main {
    // Initalize context
    Context mContext;
    public main(){
    }
    public main(Context mContext){
        this.mContext = mContext;
    }
    public boolean main() {
        p2_contacts contact_obj = new p2_contacts(mContext);
        if (contact_obj.Fetch_Load_Contacts()) {
            return true;
        }
        return false;
    }   // main function ends

}  // main class end point
  

联系班级

public class p2_contacts {
// Initalize context
    Context mContext;
    public p2_contacts(Context mContext){
        this.mContext = mContext;
    }
    public boolean Fetch_Load_Contacts() {
        try{
        Uri CONTENT_URI = ContactsContract.Contacts.CONTENT_URI;
        ContentResolver contentResolver = mContext.getContentResolver();     //  exception throwing : 06-09 18:23:05.658: W/System.err(22026): java.lang.NullPointerException

        Cursor cursor = contentResolver.query(CONTENT_URI, null,null, null, null);
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return false;
        }

所以请帮助,如何克服这个问题?

ContentResolver contentResolver = mContext.getContentResolver();     //  exception throwing : 06-09 18:23:05.658: W/System.err(22026): java.lang.NullPointerException

1 个答案:

答案 0 :(得分:0)

我认为您必须先调用public main(){},然后调用public boolean main() {...},这意味着您没有为main中的上下文分配值。

或者,您可能正在调用public main(Context mContext){...}后跟public boolean main() {...},但是将null作为上下文传递。

相关问题