2015-07-08 16 views
13

używam http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/ i działa dobrze w przykładowym projekcie tego loginu. (logowanie i rejestracja)NullPointerException addToRequestQueue (com.android.volley.Request, java.lang.String) "przy odwołaniu do obiektu o wartości zerowej

Ale po wielu próbach próbuje go cardviews i innych widgets na *LogCat* pojawia się ten błąd:

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) 

natomiast te kody działa dobrze w jednej aplikacji (tylko z rejestru logowania).

Używam biblioteki Volley. Proszę pomóż.

+0

można go znaleźć w: http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/ również po więcej informacji, ma trzy klasy, Login-Register-RegisteredActivity i dwie paczki – Mohsen

+0

Czy dodać AppController do AndroidManifest.xml? – isma3l

Odpowiedz

56

w twojej AndroidManifest.xml dodać

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

To z powodu 'AppController', który rozszerza' Application'. –

+2

Tutaj możesz przeczytać, do czego służy 'Application': http://developer.android.com/reference/android/app/Application.html –

+0

Mam również do czynienia z tym samym problemem. Ale robię logowania i rejestracji w środku aplikacji. Dlatego nie mogę dodać go do tagu aplikacji. Próbowałem dodać go do tagu aktywności, ale wciąż ten sam błąd. Jakaś pomoc ? – Lokesh

5

Jak N1to mówi, trzeba dodać kontroler w AndroidManifest.xml, jeśli nie dodawaj go następnie onCreate() nigdy nie jest wywoływana i kiedy zadzwonić AppController.getInstance() instancja jest pusta.

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

Działa również dla mnie

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

w moim przypadku, zapomniałem zainicjować zmienną RQ, proszę upewnić się, że zrobił to

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

nie zrobił przekazać dowolne dane do metody salwy, to znaczy uzyskać zerowe dane (puste dane) ..... zobacz przykład:

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

jeśli regionName jest pusta to daje NullPointerException, więc regionName musi mieć coś .....

0

W menifest pliku dodać appcontroller jak pokazano

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