Android应用程序崩溃getLastKnownLocation()
我正在开发一个通过NETWORK_PROVIDER实现位置的Android应用程序,但我在执行Android 7时遇到问题(虽然它在以前的版本中正确工作)。这是代码:Android应用程序崩溃getLastKnownLocation()
LocationManager posM;
double latitude;
double longitude;
List<Address> addresses = null;
try {
posM = (LocationManager) getSystemService(LOCATION_SERVICE);
Location location = posM.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
latitude = location.getLatitude();
longitude = location.getLongitude();
Geocoder geocoder;
geocoder = new Geocoder(Activity1.this, Locale.getDefault());
addresses = geocoder.getFromLocation(latitude, longitude, 1);
} catch (IOException e) {
e.printStackTrace();
}
我不知道为什么它崩溃Android上的7 ...谢谢大家帮忙
因为getLastKnownLocation
回报空的大部分时间。系统通常不知道您的location
。使用requestLocationUpdates
或requestSingleUpdate
打开location
检测并获取实际位置。
谢谢,但为什么只有在Android 7上才会发生?它可以在5 ... – Pietro
上完美工作,取决于系统是否有一个它已经知道的位置,并且在任何操作系统上都没有失效。事实上,你看到它在7而不是5是巧合。也许你有另一个应用程序在你的5设备上使用位置,而不是你的7。或者缓存代码可能会被挂起一点。但它可以并且会在任何操作系统版本上发生。 getLastKnownLocation可以用作优化,但从不依赖。 –
请添加堆栈跟踪 – JFPicard
显示错误堆栈跟踪 –
对不起,我怎样才能在手机上得到错误stacktrace? – Pietro