我正在尝试使用下面的代码获取当前位置的纬度和经度,但它强制关闭并显示在log cat“null pointer exception
”中,所以请检查我错在哪里..我的鳕鱼位于...... < / p>
答案 0 :(得分:1)
我认为如果空指针异常确实在if()
块内发生,那么在getLatitude()
调用时,这意味着您刚刚测试的Location对象的引用不再有效。
所以我会在使用之前尝试复制位置对象,如下所示:
public void onLocationChanged(Location location) {
Location copyOfLocation = new Location(location);
updateWithNewLocation(copyOfLocation );
}
没有测试过这个,我不记得在......之前看到这个问题了。
- 编辑 -
等等,自上次编辑以来异常已经移动......好吧,您的位置为空可能是因为系统没有以前的位置可以提供给您。尝试外出手机,启动GPS,启动谷歌地图,直到通知栏中的GPS图标不再闪烁,退出地图,回到里面再次尝试你的应用程序。
- 编辑2 -
getLastKnownLocation有两个条件:
否则它将返回null