【发布时间】:2018-01-08 20:06:56
【问题描述】:
带有自定义指南针按钮的 Google Maps API 应用程序:
如果该应用程序以前从未启动过,它会引导您完成一个简短的教程,您可以在 5 个选项卡上滑动,直到看到“知道了!”按钮。如果您之前启动过它,它会直接带您进入地图。它在第一次启动时崩溃,但在重新启动后,它会获取位置并且指南针按钮工作正常。
这里是日志:
java.lang.IllegalArgumentException: invalid provider: null
at android.location.LocationManager.checkProvider(LocationManager.java:2098)
at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1199)
at com.***********.wheres_my_ride.MapActivity$1.onClick(MapActivity.java:196)
地图活动:
//Rotate the map back to 0 bearing if rotated
compass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mMap.getCameraPosition().bearing < 0 || mMap.getCameraPosition().bearing > 0) {
THIS IS WHERE IT CRASHES
try {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
location = locationManager.getLastKnownLocation(provider); //<-- THE LINE WHERE IT CRASHES
double camera_latitude = location.getLatitude();
double camera_longitude = location.getLongitude();
LatLng cameraLatLng = new LatLng(camera_latitude, camera_longitude);
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(cameraLatLng)
.zoom(mMap.getCameraPosition().zoom)
.bearing(0)
.build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
} catch (SecurityException e) {
Log.d(TAG, "instance initializer: " + e.getMessage());
}
}
}
});
}
【问题讨论】:
标签: android google-maps illegalargumentexception