Карты Google -> MapView -> создание конструктора -> RuntimeException
Я пытаюсь написать одно приложение для Google Maps.
Скажите, в чем моя ошибка?
Если пишешь вот так, все работает, карта загружена.
public class TravelMapActivity extends MapActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.travel_map_activity);
mapView = (MapView)findViewById(R.id.travelMapView);
}
}
И если вы создадите конструктор, я получу эти ошибки здесь.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.travel_map_activity);
mapView = new MapView(this, getResources().getString(R.string.google_maps_api_key));
}
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.ai.mi.maptrack/de.ai.mi.maptrack.activities.TravelMapActivity}: java.lang.IllegalStateException: You are only allowed to have a single MapView in a MapActivity
Caused by: java.lang.IllegalStateException: You are only allowed to
have a single MapView in a MapActivity
Спасибо
1 ответ
Решение
С v1 google maps android api вы разрешили только один MapView одновременно. Я полагаю, что вы создаете один экземпляр MapView в своем XML travel_map_activity, когда вы пытаетесь создать другой с
mapView = new MapView(this, getResources().getString(R.string.google_maps_api_key));
Вы получаете исключение. Попробуйте удалить MapView из XML, чтобы решить эту проблему.