com.android.volley.VolleyError:java.lang.NullPointerException

What is a NullPointerException, and how do I fix it? Attempt to invoke virtual method 'int Java. Lang. string. Length()' on a null object reference there are still some, but I have no luck to fix it

This is the error I received from the volley error listener-

Com. Android. Volley. Volleyerror: Java. Lang. NullPointerException: try to call the virtual method 'int Java. Lang. string. Length()' on an empty object reference

I'm a novice on Android. Can someone explain the reason of my problem to me and help me solve it?

The following is the activity code for issuing the interception request-

public class CircleActivity extends AppCompatActivity  implements SwipeRefreshLayout.OnRefreshListener {

private Toolbar toolbar;
private FloatingActionButton fab;
private ArrayList<Users> listUsers = new ArrayList<>();
SessionManager sessionManager;

BroadcastReceiver broadcastReceiver;

private RecyclerView listUsersCircle;

//swipe
private SwipeRefreshLayout swipeRefreshLayout;

//volley login
//mobile hotspot
//public static final String REGISTER_URL = "http://192.168.43.181/save/user/getPeopleList";
//ghar
public final String REGISTER_URL = "http://192.168.0.10/save/user/getPeopleList";


private Circlelistadapter circlelistadapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    sessionManager = new SessionManager(getApplicationContext());
    if (sessionManager.isLoggedIn()) {
        setContentView(R.layout.activity_circle);
        toolbar = (Toolbar) findViewById(R.id.app_bar);
        //tell android to use my toolbar
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        NavigationDrawerFragment drawerFragment = (NavigationDrawerFragment)
                getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);

        drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);

        listUsersCircle = (RecyclerView) findViewById(R.id.circle);
        listUsersCircle.setLayoutManager(new linearlayoutmanager(getApplicationContext()));
        circlelistadapter = new Circlelistadapter(getApplicationContext());
        listUsersCircle.setAdapter(circlelistadapter);


        swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_circle);
        swipeRefreshLayout.setOnRefreshListener(this);


        sendJsonRequest();

        //get user_id from session
        String user_id = sessionManager.getUserDetails().get("user_id");
        //adding data to the intent
        Intent intent = new Intent(getBaseContext), LocationService.class);
        intent.putExtra("user_id", user_id);
        startService(intent);

        fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String phoneNumber="123123123412";
                String message ="Hello sms";

                sendSMS(phoneNumber,message);


            }
        });




        //location service

        // startService(new Intent(getBaseContext(), LocationService.class));

        //swipe to refresh


   /* JSONObject obj = new JSONObject();
    try {
        obj.put("txtCircleId", "acca16d632");
    } catch (JSONException e) {
        e.printStackTrace();
    }

    Log.d("Nishon",obj.toString());
    RequestQueue requestQueue = VolleySingleton.getsInstance().getRequestQueue();
    JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST,
            URL_GET_CIRCLE_USERS,
            obj,
            new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {
            Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_LONG).show();
            Log.d("Nishon",response.toString());
        }
    }, new Response.ErrorListener() {
        @Override
        public void one rrorResponse(VolleyError error) {
            Log.d("Nishon", error.toString());
        }
    });
    requestQueue.add(request);*/

    } else {
        Intent intent = new Intent(this, LoginActivity.class);
        startActivity(intent);
        finish();
    }

}

private void sendSMS(String phoneNumber, String message)
{

    PendingIntent pi = PendingIntent.getActivity(this, 0,
            new Intent(this, SMS.class), 0);
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, pi, null);
}

public void sendJsonRequest() {
    RequestQueue requestQueue = VolleySingleton.getsInstance().getRequestQueue();
    StringRequest request = new StringRequest(Request.Method.POST, REGISTER_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    listUsers = parseJsonResponse(response);
                    circlelistadapter.setCircleList(listUsers);
                    Log.d("d",response);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void one rrorResponse(VolleyError error) {
                    Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_LONG).show();
                    Log.d("d", error.toString());
                }
            }) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            String group_key= sessionManager.getUserDetails().get("group_key");

            params.put("group_key", group_key);
            return params;
        }
    };
    requestQueue.add(request);
}

public ArrayList<Users> parseJsonResponse(String response) {
    ArrayList<Users> listUsers = new ArrayList<>();
    if (response != null || response.length() > 0) {

        Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_LONG).show();

        JSONObject jsonObject = null;
        try {
            jsonObject = new JSONObject(response.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
        //extracting json array from response string
        JSONArray jsonArray = null;
        try {

            if (jsonObject.has("users")) {

                jsonArray = jsonObject.getJSONArray("users");


                for (int z = 0; z < jsonArray.length(); z++) {


                    JSONObject currentUser = jsonArray.getJSONObject(z);

                    //String email = currentUser.getString("email");
                    String fname = currentUser.getString("first_name");
                    String lname = currentUser.getString("last_name");

                    Users user = new Users();

                    user.setFname(fname);
                    user.setLname(lname);
                    listUsers.add(user);

                }

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
       /* JSONObject jsonRow = null;
        try {
            jsonRow = jsonArray.getJSONObject(1);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        //get value from jsonRow
        try {
            String resultStr = jsonRow.getString("email");
            Log.d("Nishon", resultStr);
        } catch (JSONException e) {
            e.printStackTrace();
        }*/
    }
    return listUsers;
}

@Override
protected void onPause() {
    super.onPause();
    finish();
}

public void showNotification(View view) {

}

@Override
public void onRefresh() {
    swipeRefreshLayout.setRefreshing(true);
    sendJsonRequest();
    swipeRefreshLayout.setRefreshing(false);
}

/*@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_POWER) {
        // Do something here...
        event.startTracking(); // Needed to track long presses
        return true;
    }

    return super.onKeyDown(keyCode, event);

}
*/






}

The web service is running

resolvent:

This means that you are trying to get the length () of a null string

The culprit is this line:

if (response != null || response.length() > 0) {

This means that if the response is not null or the length is greater than zero

What you want is:

if (response != null && response.length() > 0) {

If the response is null, the statement will fail because if it is null, the length cannot be checked

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>