Почему Google Maps вылетает с ошибкой «Попытка установить неизвестное значение перечисления»? - PullRequest
0 голосов
/ 05 июля 2019

Я использую 3.1.0 версию Google Maps SDK для iOS.При назначении view на GMSMapView в функции loadView приложение вылетает со следующей ошибкой: 'NSInvalidArgumentException', reason: 'GMSx_GMMClientPropertiesRequestProto.screenPixelDensity: Attempt to set an unknown enum value (0)'.Это действительно странно, почему это происходит.Я пытался понизить версию Google Maps, но это не помогло.В AppDelegate я предоставляю API_KEY.Вот мой код, как я использую Google Maps:

lazy var mapView: GMSMapView = GMSMapView(frame: .zero)

override func loadView() {
    super.loadView()

    view = mapView

}

В чем причина возникновения этой ошибки и как ее можно устранить?

ОБНОВЛЕНИЕ-1: Я провел небольшой эксперимент и протестировал на нескольких устройствах следующий простой код:

override func viewDidLoad() {
    super.viewDidLoad()

    let mapView = GMSMapView()

    let dummyView = UIView()

    dummyView.backgroundColor = .purple

    view = mapView
}

Этот код успешно показывает карту на iPhone 7, но завершается с той же ошибкойна iPhone SE.Оба устройства работают на iOS 12.3.1.Сбой при инициализации mapView, а не при установке view.Даже когда я устанавливаю dummyView на view, он падает, потому что я инициализировал mapView.

ОБНОВЛЕНИЕ-2: Попытался избежать инициализации переменной mapView самостоятельно.Создал раскадровку, добавил представление и указал, что класс GMSMapView и подключен к моему контроллеру представления.Убрал весь вышеуказанный код из ВК.Работал в iPhone 7, вышел из строя в iPhone SE с той же ошибкой.

ОБНОВЛЕНИЕ-3: Создан новый проект и используется тот же API_KEY для отображения карт.Это работало в iPhone SE!Это значит, что проблема не в устройстве, а в проекте.До сих пор не знаю, где это, но, возможно, в стручках.

1 Ответ

0 голосов
/ 05 июля 2019

Наконец, после всех вышеперечисленных обновлений у меня возникла мысль, что я должен удалить приложение в своем телефоне и запустить его снова. Тогда это сработало! Я не знаю, почему это сработало. Возможно, эта ошибка возникает только в отладочной версии приложения.

...