skip to Main Content

can you help me. i have an error in my code with a boolean isFromMockProvider() on a null object reference. this problem occurs when the gps on my provider is slow can you guys help me with dealing with the error

here is my code:

GetLocation getLocation = new GetLocation(getApplicationContext());
        Location location = getLocation.getLocation();
        boolean isMockLocation = location.isFromMockProvider();
        if (isMockLocation==true){
            showDialog();
        }
        else {
            tesmock.setText("No Use Mock ");
        }

3

Answers


  1. Chosen as BEST ANSWER

    Is it like this? I'm sorry because I'm a beginner

     Location location = getLocation.getLocation();
            if(location!=null){
                boolean isMockLocation = location.isFromMockProvider();
                if (isMockLocation==true){
                    showDialog();
                }
                else {
                    tesmock.setText("No Use Mock ");
                }
            } else{
                //display an error message or something saying the GPS is too slow
            }
    

  2. Your question is lacking quite a bit of context, so this involves some guess work:

    What’s probably happening is that when your gps is slow, getLocation.getLocation() returns null rather than a Location object, so trying to call location.isFromMockProvider() throws a NullPointerException.

    The best way to solve this would be to check whether location is null before calling that function:

    Location location = getLocation.getLocation();
    if(location!=null){
        boolean isMockLocation = location.isFromMockProvider();
        //the stuff you then do with isMockLocation
    } else{
        //display an error message or something saying the GPS is too slow
    }
    
    Login or Signup to reply.
  3. You are using 2 If statements

    GetLocation getLocation = new GetLocation(getApplicationContext());
        Location location = getLocation.getLocation();
    if (location!=null){
        boolean isMockLocation = location.isFromMockProvider();
        if (isMockLocation==true){
            showDialog();
        }
        else {
            tesmock.setText("No Use Mock ");
        }
    } else { //show Here a dialog saying GPS is slow or Something like this
    }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search