我收到一个奇怪的错误,因为如果我在真实手机上运行该应用,
它不会给出此错误(Android 5.0)。但是在模拟器(Android 6.0)上,它给了我这个错误:


  致命异常:主要
                                                                                      流程:com.doppler.stackingcoder.pechhulp,PID:11424
                                                                                      java.lang.NullPointerException:尝试调用虚拟方法
  空对象上的'double android.location.Location.getLatitude()'
  参考
                                                                                          在
  com.doppler.stackingcoder.pechhulp.PechhulpActivity.onLocationChanged(PechhulpActivity.java:171)
                                                                                          在
  com.doppler.stackingcoder.pechhulp.PechhulpActivity.onMapReady(PechhulpActivity.java:126)


这是我的PechhulpActivity:

https://gist.github.com/soufyanekaddouri/6e3a3746be137e2680caa32d7bb746d9

最佳答案

关于崩溃,您假设至少一个提供程序将从Location返回getLastKnownLocation()。在设备或仿真器上都不需要这样做。您需要处理所有提供程序都从null返回getLastKnownLocation()的情况。这可能是因为不尝试使用该位置。或者,请求位置更新,然后使用第一次更新中的位置。

09-27 17:21