为什么 Google 地图崩溃并出现 "Attempt to set an unknown enum value" 错误?
Why Google Maps crashes with "Attempt to set an unknown enum value" error?
我为 iOS 使用 Google Maps SDK 的 3.1.0 版本。在 loadView
函数中将 view
分配给 GMSMapView
时,应用程序崩溃并出现以下错误:'NSInvalidArgumentException', reason: 'GMSx_GMMClientPropertiesRequestProto.screenPixelDensity: Attempt to set an unknown enum value (0)'
。为什么会这样真的很奇怪。我试图降级 Google 地图的版本,但没有帮助。在AppDelegate
中,我提供API_KEY
。这是我的代码,我如何使用 Google 地图:
lazy var mapView: GMSMapView = GMSMapView(frame: .zero)
override func loadView() {
super.loadView()
view = mapView
}
出现此错误的原因是什么以及如何解决?
更新一:
我做了一个小实验,并使用以下简单代码在多个设备上进行了测试:
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
变量。创建故事板,添加视图并指示 class 是 GMSMapView
并连接到我的视图控制器。从 VC 中删除了以上所有代码。在 iPhone 7 中工作,在 iPhone SE 中失败并出现相同的错误。
更新 3:
创建了新项目并使用相同的 API_KEY 来显示地图。它在 iPhone SE 中有效!这意味着,问题不在设备中,而是在项目中。仍然不知道它在哪里,但也许在 Pods。
最后,在进行了上述所有更新之后,我想出了一个想法,我应该删除我 phone 中的应用程序并再次 运行 它。然后,它起作用了!我不知道为什么它起作用了。可能,此错误仅发生在应用程序的调试版本中。
我在我的应用程序中使用本地化,当我更改语言时,我还添加了以下代码:
UserDefaults.standard.setValue(lang, forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
所以通过评论它,然后重新安装我的应用程序,它成功了!
我为 iOS 使用 Google Maps SDK 的 3.1.0 版本。在 loadView
函数中将 view
分配给 GMSMapView
时,应用程序崩溃并出现以下错误:'NSInvalidArgumentException', reason: 'GMSx_GMMClientPropertiesRequestProto.screenPixelDensity: Attempt to set an unknown enum value (0)'
。为什么会这样真的很奇怪。我试图降级 Google 地图的版本,但没有帮助。在AppDelegate
中,我提供API_KEY
。这是我的代码,我如何使用 Google 地图:
lazy var mapView: GMSMapView = GMSMapView(frame: .zero)
override func loadView() {
super.loadView()
view = mapView
}
出现此错误的原因是什么以及如何解决?
更新一: 我做了一个小实验,并使用以下简单代码在多个设备上进行了测试:
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
变量。创建故事板,添加视图并指示 class 是 GMSMapView
并连接到我的视图控制器。从 VC 中删除了以上所有代码。在 iPhone 7 中工作,在 iPhone SE 中失败并出现相同的错误。
更新 3: 创建了新项目并使用相同的 API_KEY 来显示地图。它在 iPhone SE 中有效!这意味着,问题不在设备中,而是在项目中。仍然不知道它在哪里,但也许在 Pods。
最后,在进行了上述所有更新之后,我想出了一个想法,我应该删除我 phone 中的应用程序并再次 运行 它。然后,它起作用了!我不知道为什么它起作用了。可能,此错误仅发生在应用程序的调试版本中。
我在我的应用程序中使用本地化,当我更改语言时,我还添加了以下代码:
UserDefaults.standard.setValue(lang, forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
所以通过评论它,然后重新安装我的应用程序,它成功了!