NullPointerException addToRequestQueue (com.android.volley.Request, java.lang.String) 'en una referencia de objeto nulo
Estoy usando http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/ y está funcionando bien en el proyecto de ejemplo de este registro de inicio de sesión. Solo ingresa y regístrate )
Pero después de muchos intentos de intentarlo con cardviews
y otros widgets
, este error aparece en el *LogCat*
:
java.lang.NullPointerException: Attempt to invoke virtual method 'void client.myproject.app.AppController.addToRequestQueue(com.android.volley.Request, java.lang.String)' on a null object reference at client.myproject.RegisterActivity.registerUser(RegisterActivity.java:185) at client.myproject.RegisterActivity.access$300(RegisterActivity.java:35) at client.myproject.RegisterActivity$1.onClick(RegisterActivity.java:81) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Mientras que estos códigos funcionan bien en una sola aplicación (sólo con registro de inicio de sesión).
Estoy usando la biblioteca Volley. Por favor ayuda.
En el complemento AndroidManifest.xml
<application android:name="YOURPACKAGENAME.AppController" android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
En mi caso, me olvidé de inicializar la variable rq, por favor, asegúrese de que lo hizo
... private RequestQueue rq; // rq = null (NullPointerException if you use) ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... rq = Volley.newRequestQueue(YourActivity.this); // rq != null } ... rq.add(request);
Como N1to dice, usted necesita agregar su controlador en el AndroidManifest.xml, si no lo agrega entonces el onCreate () nunca se llama y cuando llama AppController.getInstance () la instancia es null.
<application android:name="YOURPACKAGENAME.AppController" android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
También funciona para mí con
<application android:name=".AppController" android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
No pasó ningún dato al método volley, eso significa que obtiene datos nulos (datos vacíos) … ver ejemplo:
protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map=new HashMap<>(); map.put(region, regionName); return map; }
Si regionName está vacío, le dará NullPointerException, así que regionName debe tener algo …..