Error: java.lang.NullPointerException en android.support.v4.content.Loader

Quiero implementar LoaderManager en mi aplicación para reducir el tiempo de inicio Como se puede ver aquí, pero después de implementar la sugerencia en ese hilo que estaba recibiendo el siguiente error initLoader(int, Bundle, LoaderManager.LoaderCallbacks) in the type LoaderManager is not applicable for the arguments (int, null, MainActivity) . Después de buscar aquí encontré la solución para ese segundo error aquí . Pero después de implementar la sugerencia de más tarde, ahora estoy recibiendo el error java.lang.NullPointerException at android.support.v4.content.Loader . Estoy poniendo el código que tengo actualmente, ¿puede alguien decirme, ¿cómo puedo resolver este problema

CÓDIGO COMPLETO PUEDE SER VISTO AQUÍ

Gato de registro

 10-03 20:11:34.849: E/AndroidRuntime(2968): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.sms.it/com.test.sms.it.MainActivity}: java.lang.NullPointerException 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.os.Handler.dispatchMessage(Handler.java:99) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.os.Looper.loop(Looper.java:123) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.app.ActivityThread.main(ActivityThread.java:3683) 10-03 20:11:34.849: E/AndroidRuntime(2968): at java.lang.reflect.Method.invokeNative(Native Method) 10-03 20:11:34.849: E/AndroidRuntime(2968): at java.lang.reflect.Method.invoke(Method.java:507) 10-03 20:11:34.849: E/AndroidRuntime(2968): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 10-03 20:11:34.849: E/AndroidRuntime(2968): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 10-03 20:11:34.849: E/AndroidRuntime(2968): at dalvik.system.NativeStart.main(Native Method) 10-03 20:11:34.849: E/AndroidRuntime(2968): Caused by: java.lang.NullPointerException 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.support.v4.content.Loader.<init>(Loader.java:91) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.support.v4.content.AsyncTaskLoader.<init>(AsyncTaskLoader.java:92) 10-03 20:11:34.849: E/AndroidRuntime(2968): at com.test.sms.it.MainActivity$ContactsDataLoader.<init>(MainActivity.java:104) 10-03 20:11:34.849: E/AndroidRuntime(2968): at com.test.sms.it.MainActivity.onCreateLoader(MainActivity.java:496) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.support.v4.app.LoaderManagerImpl.createLoader(LoaderManager.java:487) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.support.v4.app.LoaderManagerImpl.createAndInstallLoader(LoaderManager.java:496) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.support.v4.app.LoaderManagerImpl.initLoader(LoaderManager.java:550) 10-03 20:11:34.849: E/AndroidRuntime(2968): at com.test.sms.it.MainActivity.onCreate(MainActivity.java:91) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 10-03 20:11:34.849: E/AndroidRuntime(2968): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 

MainActivity.java

 import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.graphics.Color; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.preference.PreferenceManager; import android.provider.ContactsContract; import android.support.v4.app.FragmentActivity; import android.support.v4.app.LoaderManager; import android.support.v4.content.AsyncTaskLoader; import android.support.v4.content.Loader; import android.view.KeyEvent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.EditText; import android.widget.SimpleAdapter; import android.widget.Spinner; import android.widget.Toast; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); editUser1UserName = (EditText) findViewById(R.id.editTextUser1UserName); editUser1Password = (EditText) findViewById(R.id.editTextUser1Password); editUser2UserName = (EditText) findViewById(R.id.editTextUser2UserName); editUser2Password = (EditText) findViewById(R.id.editTextUser2Password); editUser3UserName = (EditText) findViewById(R.id.editTextUser3UserName); editUser3Password = (EditText) findViewById(R.id.editTextUser3Password); editUser4UserName = (EditText) findViewById(R.id.editTextUser4UserName); editUser4Password = (EditText) findViewById(R.id.editTextUser4Password); editUser5UserName = (EditText) findViewById(R.id.editTextUser5UserName); editUser5Password = (EditText) findViewById(R.id.editTextUser5Password); mTxtPhoneNo = (AutoCompleteTextView) findViewById(R.id.mmWhoNo); mTxtPhoneNo.setThreshold(1); mTxtPhoneNo.setTextColor(Color.BLACK); editText = (EditText) findViewById(R.id.editTextMessage); spinner1 = (Spinner) findViewById(R.id.spinnerGateway); btnsend = (Button) findViewById(R.id.btnSend); btnContact = (Button) findViewById(R.id.btnContact); btnClear = (Button) findViewById(R.id.btnClear); btnClear.setOnClickListener(this); btnsend.setOnClickListener(this); btnContact.setOnClickListener(this); mPeopleList = new ArrayList<Map<String, String>>(); getSupportLoaderManager().initLoader(0, null, this); mTxtPhoneNo.setOnItemClickListener(this); readPerson(); Panel panel; topPanel = panel = (Panel) findViewById(R.id.mytopPanel); panel.setOnPanelListener(this); panel.setInterpolator(new BounceInterpolator(Type.OUT)); getLoginDetails(); } public class ContactsDataLoader extends AsyncTaskLoader<ArrayList<Map<String, String>>> { public ContactsDataLoader(Context context) { super(context); } @Override public ArrayList<Map<String, String>> loadInBackground() { mPeopleList.clear(); Cursor people = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while (people.moveToNext()) { String contactName = people .getString(people .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); String contactId = people.getString(people .getColumnIndex(ContactsContract.Contacts._ID)); String hasPhone = people .getString(people .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if ((Integer.parseInt(hasPhone) > 0)) { Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); while (phones.moveToNext()) { String phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); String numberType = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); Map<String, String> NamePhoneType = new HashMap<String, String>(); NamePhoneType.put("Name", contactName); NamePhoneType.put("Phone", phoneNumber); if (numberType.equals("0")) NamePhoneType.put("Type", "Work"); else if (numberType.equals("1")) NamePhoneType.put("Type", "Home"); else if (numberType.equals("2")) NamePhoneType.put("Type", "Mobile"); else NamePhoneType.put("Type", "Other"); mPeopleList.add(NamePhoneType); } phones.close(); } } people.close(); startManagingCursor(people); return mPeopleList; } @Override protected void onStartLoading() { super.onStartLoading(); forceLoad(); } } public Loader<ArrayList<Map<String, String>>> onCreateLoader(int id, Bundle args) { return new ContactsDataLoader(context); } public void onLoadFinished(Loader<ArrayList<Map<String, String>>> loader, ArrayList<Map<String, String>> data) { mPeopleList = data; mAdapter = new SimpleAdapter(this, mPeopleList, R.layout.custcontview, new String[] { "Name", "Phone", "Type" }, new int[] { R.id.ccontName, R.id.ccontNo, R.id.ccontType }); mTxtPhoneNo.setAdapter(mAdapter); } public void onLoaderReset(Loader<ArrayList<Map<String, String>>> loader) { mPeopleList = new ArrayList<Map<String, String>>(); mAdapter = new SimpleAdapter(this, mPeopleList, R.layout.custcontview, new String[] { "Name", "Phone", "Type" }, new int[] { R.id.ccontName, R.id.ccontNo, R.id.ccontType }); mTxtPhoneNo.setAdapter(mAdapter); } 

El comentario de RC es la respuesta de su problema. Pasas un Context null (ya que no veo en ninguna parte del código que publicaste la variable de context inicializada con una referencia válida) a tu cargador personalizado y el código fallará con una NullPointerException . Si usó mi código de mi respuesta anterior, entonces las devoluciones de llamada se implementarán en su Activity . En este caso, pase this , la referencia a su instancia de Activity actual, a su cargador personalizado:

 public Loader<ArrayList<Map<String, String>>> onCreateLoader(int id, Bundle args) { return new ContactsDataLoader(this); } 

Además, si cierra el cursor, no es necesario utilizar startManagingCursor() para ese Cursor ya que podría tener problemas.

  • ViewPager.PageTransformer no se puede resolver con un tipo
  • Implicado Z-Ordenando Para ViewPagers
  • Barra de herramientas de soporte de Android: Cambiar el tamaño no realineará los elementos del menú
  • Cómo configurar el recuento de notificaciones no leídas en NavigationView de DrawerLayout?
  • setfitsystemwindows no funciona windowtranslucentstatus coordinatorlayout
  • En la aplicación android el método Toolbar.setTitle no tiene efecto - el nombre de la aplicación se muestra como título
  • Android get La barra de acción de soporte siempre devuelve NULL
  • API de tintura RatingBar personalizada <21 con la biblioteca de soporte 22.1.1
  • Incluso estoy usando MenuItemCompat.setOnActionExpandListener mi aplicación se bloquea con aconsejar utilizar MenuItemCompat.setOnActionExpandListener
  • Si utilizo la nueva "biblioteca V7 Appcompat", ¿necesito todavía "V4 Support Library" para un SDK mínimo de 7?
  • Defecto de la imagen con ScriptIntrinsicBlur de la biblioteca de soporte
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.