NullPointerException:尝试在 Android Studio 上调用虚拟方法
NullPointerException: Attempt to invoke virtual method on Android Studio
我正在 Android Studio 中制作一个应用程序,使用带有 php 的外部数据库,但我卡在了从数据库中获取“ID”的部分,从那个 ID我确定进入的用户是否必须去一个或另一个 class,但是当我看到 Logcat:
时它给了我以下错误
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.example.tallerof.MainActivity.onResponse(MainActivity.java:139)
at com.example.tallerof.MainActivity.onResponse(MainActivity.java:132)
at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:83)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:106)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
这些是出现错误的代码行,但我认为它可能是错误的:
JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(URL, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
JSONObject jsonObject = null;
for (int i = 0; i < response.length(); i++) {
try {
jsonObject = response.getJSONObject(i);
IdR.setText(jsonObject.getString("Id_Registered"));//Here is from where I get the error
} catch (JSONException e) {
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
}
IdR 是一个 EditText,它在 activity
中全局声明
IdR
是 null
。
使用前需要先初始化。
像这样:
IdR = findViewById(R.id.idr_view_id)
我正在 Android Studio 中制作一个应用程序,使用带有 php 的外部数据库,但我卡在了从数据库中获取“ID”的部分,从那个 ID我确定进入的用户是否必须去一个或另一个 class,但是当我看到 Logcat:
时它给了我以下错误java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.example.tallerof.MainActivity.onResponse(MainActivity.java:139)
at com.example.tallerof.MainActivity.onResponse(MainActivity.java:132)
at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:83)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:106)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
这些是出现错误的代码行,但我认为它可能是错误的:
JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(URL, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
JSONObject jsonObject = null;
for (int i = 0; i < response.length(); i++) {
try {
jsonObject = response.getJSONObject(i);
IdR.setText(jsonObject.getString("Id_Registered"));//Here is from where I get the error
} catch (JSONException e) {
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
}
IdR 是一个 EditText,它在 activity
中全局声明IdR
是 null
。
使用前需要先初始化。
像这样:
IdR = findViewById(R.id.idr_view_id)