java - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“double java.lang.Double.doubleValue()”
问题描述
一切正常,最后我得到了这个错误,请给出解决方案。我已经尝试了每一个解决方案,我不知道该怎么办..请给出过去两天尝试的确切解决方案,但我无法解决问题..
提前致谢
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)
解决方案
代码本身没有任何问题,只是您必须了解为什么某些值在您不期望的情况下为空。
通常,当可能发出空指针异常时,必须进行检查。
并检查这些'lat-lati'和'lng-longi'变量
double xSquare = Math.pow(lat-lati, 2);
double ySquare = Math.pow(lng-longi, 2);
推荐阅读
- sql - 如何在 SQL Server 中查询所有出现的 XML 列的标题
- r - 通过 Shiny 应用程序提供 R 脚本(显示 R 代码的文本框,类似于代码示例)
- reactjs - Material UI 将完整的自定义主题应用于文档
- python - 将许多列转换为 pandas 中的行,同时保留数据
- typescript - 根据请求正文更改 TestCafe RequestMock API 响应
- php - 如何解析顶级XML元素php
- c++ - 返回的指针属性中类实例上的向量属性消失
- python - pySpark 列表到数据框
- c# - 用一个打开的泛型接口注册一个封闭的泛型类实现
- javascript - Azure Maps 仅在角落呈现图块