#huawei-mobile-services #huawei-developers
Вопрос:
Карта работала как раз перед тем, как внезапно начала выходить из строя при открытии активности.
Код был таким же, как и рабочий, и никаких изменений не было внесено. в чем может быть проблема?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
mapView = findViewById(R.id.map);
checkPermission();
if (permission) {
mapView.getMapAsync(this);
mapView.onCreate(savedInstanceState);
}
}
@Override protected void onStart() { super.onStart(); mMapView.onStart(); }
@Override protected void onResume() { super.onResume(); mMapView.onResume(); }
@Override protected void onPause() { super.onPause(); mMapView.onPause(); }
@Override protected void onStop() { super.onStop(); mMapView.onStop(); }
@Override protected void onDestroy() { super.onDestroy(); mMapView.onDestroy(); }
@Override public void onLowMemory() { super.onLowMemory(); mMapView.onLowMemory(); }
Ответ №1:
Когда код не изменился, возможно, изменилось разрешение приложения.
возможно, он был переустановлен и удален?
глядя на код, oncreate вызывается после проверки разрешений.
нам нужно либо снова запросить разрешение, либо запустить приложение без карты. один из двух вариантов.
Это должно предотвратить исключение NullPointerException.
также для запроса разрешения нам необходимо обработать исключение SecurityException, чтобы избежать сбоя.