的NullPointerException我下面this tutorialAndroid的 - 在我的活動
我有一個活動叫LogInActivity
這是MainActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
email = (EditText) findViewById(R.id.email);
password = (EditText) findViewById(R.id.password);
}
public void checkLogin(View view){
final String emailText = email.getText().toString().trim();
final String passwordTex = password.getText().toString().trim();
StringRequest req = new StringRequest(Request.Method.POST, Constants.LOGIN_URL, successListener, errorListener) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("email", emailText);
params.put("password", passwordTex);
return params;
}
};
ReqQueue.getInstance().getRequestQueue().add(req);
}
刪除Listener functions
爲簡單起見。
我ReQueue
類是如下
public class ReqQueue extends Application{
private static ReqQueue instance;
private RequestQueue requestQueue;
private Context context;
@Override
public void onCreate(){
super.onCreate();
context = getApplicationContext();
instance = this;
}
public static synchronized ReqQueue getInstance(){
return instance;
}
public RequestQueue getRequestQueue(){
if(requestQueue == null){
requestQueue = Volley.newRequestQueue(context);
}
return requestQueue;
}
public <T> void addToReqQueue(Request<T> req){
getRequestQueue().add(req);
}
}
如果我執行的代碼,我得到NullPointeRException
。我找到了它發生的位置。它發生在登錄活動的此行ReqQueue.getInstance().getRequestQueue().add(req);
。
實例爲空。但是我在本教程中提到的onCreate方法中創建實例。但是這種創建方法從未被調用過。
如果我在我的活動中做了所有的隊列活動,它本身就可以工作。我如何解決它?
堆棧錯誤
04-24 16:24:39.254 10272-10272/com.gopsab.loginsystem E/AndroidRuntime:致命異常:主 工藝:com.gopsab.loginsystem,PID :10272 java.lang.IllegalStateException:爲 機器人無法執行方法:在 android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)的onClick 一t android.view.View.performClick(View.java:5198) at android.view.View $ PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java .lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:616)
產生的原因:在java.lang.reflect.Method.invoke(本機方法) 在 android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288 java.lang.reflect.InvocationTargetException ) at android.view.View.performClick(View.java:5198) at android.view.View $ PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739 ) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) 在android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit。的java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
所致:顯示java.lang.NullPointerException:嘗試調用虛擬方法 「com.android.volley。請求隊列 com.gopsab.utils.ReqQueue.getRequestQueue()」在 com.gopsab.loginsystem.LoginActivity.checkLogin(LoginActivity.java:73)一個空對象 參考 上 在java.lang.reflect.Method.invoke (本機方法) 在 android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在android.view.View.performClick(View.java:5198) 在android.view.View $ PerformClick.run(View.java:21147) 在android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main( ZygoteInit.ja VA:616)
有什麼,收的?這是你的錯,你在教程中跳過了一些東西。空指針通常被低估 –