【发布时间】:2015-08-29 12:44:16
【问题描述】:
我正在测试一个使用Location 服务的应用程序。每当我的位置服务关闭时,它都会返回导致NPE (Null Pointer Exception) 的空值。所以经过一番搜索,我发现
isGPSEnabled = locationManager.isProviderEnabled(locationManager.GPS_PROVIDER);
应该返回正确的boolean value,但在测试我的应用程序时,它似乎总是返回true,导致NPE (Null Pointer Exception) 并导致我的应用程序崩溃。
我还阅读了this 问题。显然有完全相反的问题并尝试了该解决方案。那也没用。我正在三星 G5 上进行测试。为什么会这样。代码有问题还是我的问题有其他解决方案。
代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
isGPSEnabled = false;
intentThatCalled = getIntent();
String m2txt = intentThatCalled.getStringExtra("v2txt");
getLocation(m2txt);
}
public void getLocation(String n2txt) {
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
criteria = new Criteria();
bestProvider = String.valueOf(locationManager.getBestProvider(criteria, true)).toString();
location = locationManager.getLastKnownLocation(bestProvider);
isGPSEnabled = locationManager.isProviderEnabled(locationManager.GPS_PROVIDER);
if (isGPSEnabled==true) {
Log.e("TAG", "GPS is on");
latitude = location.getLatitude();
longitude = location.getLongitude();
Toast.makeText(PlacesDecoder.this, "latitude:" + latitude + " longitude:" + longitude, Toast.LENGTH_SHORT).show();
searchNearestPlace(n2txt);
}
}
我仍然是 android 的初学者。 请帮忙。
编辑: This 问题似乎在同一个硬件型号上也有同样的问题。这是硬件错误吗?如果是,是否还有其他可能。我还将在另一台设备 Note-4 上进行测试并通知您。
【问题讨论】:
标签: java android nullpointerexception location locationmanager