java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'double java.lang.Double.doubleValue()'

问题描述 投票:-1回答:1

一切正常,最后我收到此错误,请提供解决方案。我已经尝试了每个解决方案,但我不知道该怎么办..请提供过去2天尝试的确切解决方案,但我无法解决问题..

提前感谢

public double calculatedDistance(DataSnapshot dataSnapshot ) {


        HashMap<String, Object> values = (HashMap<String, Object>) dataSnapshot.getValue();

        double lati = Double.parseDouble(values.get("latitude").toString());
        double longi = Double.parseDouble(values.get("longitude").toString());

        double xSquare = Math.pow(lat-lati, 2);
        double ySquare = Math.pow(lng-longi, 2);
        double distance = Math.sqrt(xSquare + ySquare);

        //double dist = distance;

        textViewdistance.setText(String.valueOf(""+distance+""+"km"));
        return distance;

    }
Error in Logcat

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.ambulance, PID: 17399
    java.lang.NullPointerException: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference
        at com.example.ambulance.MapsActivity.calculatedDistance(MapsActivity.java:451)
        at com.example.ambulance.MapsActivity$2$1.onChildAdded(MapsActivity.java:178)
        at com.google.firebase.database.core.ChildEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.2.0:79)
        at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.2.0:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.2.0:55)
        at android.os.Handler.handleCallback(Handler.java:907)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7625)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
java android firebase-realtime-database maps double
1个回答
0
投票

他们似乎没有什么问题,只是签出Hashmap纬度和经度给出了适当的值。

并检查这些'lat-lati'和'lng-longi'变量

    double xSquare = Math.pow(lat-lati, 2);
    double ySquare = Math.pow(lng-longi, 2);
© www.soinside.com 2019 - 2024. All rights reserved.