NullPointerException addToRequestQueue (com.android.volley.Request, java.lang.String) 'на ссылке нулевого объекта

Я использую http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/, и он отлично работает в примере проекта этого регистрационного регистра. ( Просто войдите и зарегистрируйтесь )

Но после многих попыток с помощью cardviews и других widgets эта ошибка появляется на *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) 

В то время как эти коды прекрасно работают в одном приложении (только с регистрационной регистрацией).

Я использую библиотеку Volley. Пожалуйста помоги.

В вашем AndroidManifest.xml add

 <application android:name="YOURPACKAGENAME.AppController" android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> 

В моем случае я забыл инициализировать переменную rq, пожалуйста, убедитесь, что вы это сделали

  ... 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); 

Как говорит N1to, вам нужно добавить свой контроллер в AndroidManifest.xml, если вы его не добавите, то onCreate () никогда не вызывается, а при вызове AppController.getInstance () экземпляр имеет значение null.

 <application android:name="YOURPACKAGENAME.AppController" android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> 

Он также работает для меня с

 <application android:name=".AppController" android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> 

Вы не передали какие-либо данные методу volley, это означает, что он получает нулевые данные (пустые данные) ….. см. Пример:

 protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map=new HashMap<>(); map.put(region, regionName); return map; } 

Если regionName пуст, он даст вам NullPointerException, поэтому regionName должно иметь что-то …..