Android 这怎么可能在eclipse中工作,但在实际的手机中却不行?
就在那之后,我将纬度和经度输入到服务器上,但它会使我的手机崩溃 设置>位置和安全性>我的 位置 您的Android设备中未启用该服务Android 这怎么可能在eclipse中工作,但在实际的手机中却不行?,android,google-maps,geolocation,location,criteria,Android,Google Maps,Geolocation,Location,Criteria,就在那之后,我将纬度和经度输入到服务器上,但它会使我的手机崩溃 设置>位置和安全性>我的 位置 您的Android设备中未启用该服务 因此,您的locationManager.getLastKnownLocation(提供程序)(如果提供程序当前已禁用,则返回null。)将生成null值,稍后您将调用double latitude=location.getLatitude();double longitude=location.getLongitude()带有空值对象,因此应用程序正在崩溃。堆栈
因此,您的
locationManager.getLastKnownLocation(提供程序)
(如果提供程序当前已禁用,则返回null。)将生成null值,稍后您将调用double latitude=location.getLatitude();double longitude=location.getLongitude()代码>带有空值对象,因此应用程序正在崩溃。堆栈跟踪?您是否尝试过使用DDMS(EclipseADT插件的一部分)监视LogCat输出,以找出它使您的手机崩溃的原因?这对于开发来说是绝对必要的。检查手机上的设置-位置,看看是否选择了任何选项来确定位置。Logcat上没有任何选项,因为它在Eclipse上运行良好,但你是对的,我想我打开了GPS选项,但我没有,谢谢。
LocationManager locationManager;
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(context);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
double latitude = location.getLatitude();
double longitude = location.getLongitude();