【发布时间】:2016-03-18 20:26:15
【问题描述】:
我尝试使用 LocationManager 获取 LastKnowLocation,这是我的代码:
LocationManager mLocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (mLocManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Location mLocation = mLocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
我已经在 AndroidManifest.xml 中添加了权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
然后我使用 DDMS 将纬度和经度发送到模拟器,但是当我使用 x86 CPU 模拟器时,我得到了类似的错误
Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference
当我使用 arm CPU 模拟器时,我得到了正确的纬度和经度。谁能告诉我为什么我不能在 x86 模拟器中得到正确的位置,以及我该如何处理它。谢谢。
【问题讨论】:
-
在尝试提取纬度和经度之前请参阅.. 确保位置不为空,并且在使用 double 和解析 lat long 时也是如此;确保位置不为空且不使用 GPS 提供程序;大多数情况下,该位置将为空......所以改为使用 NETWORK_PROVIDER......但确保 GPS 已打开,但包括对 GPS 统计的检查
标签: android nullpointerexception gps android-emulator locationmanager