在启动屏幕之后,我的应用程序的第一页上有一个谷歌地图。 当我第一次运行该应用程序并且是一个非常新的版本时,它在 IOS 上崩溃并出现此错误:PlatformException(create_failed,无法在无头引擎上创建视图,null)。
这是我的谷歌地图代码,仅当第一次安装该应用程序时,才会在 IOS 中发生崩溃。
GoogleMap(
myLocationEnabled: false,
myLocationButtonEnabled: false,
zoomGesturesEnabled: true,
scrollGesturesEnabled: true,
rotateGesturesEnabled: false,
tiltGesturesEnabled: false,
onMapCreated: _onMapCreated,
initialCameraPosition: CameraPosition(
target: _location,
zoom: 12,
/* tilt: 50.0,
bearing: 45.0,*/
),
mapType: _currentMapType,
markers: Set<Marker>.of(markers.values),
onCameraMove: _onCameraMove,
onCameraIdle: _onCameraIdle,
)
我正在 GitHub 上跟进此问题:https://github.com/flutter/flutter/issues/36310 但它没有一个适当的解决方案。 谁能帮我解决这个问题吗?
您是否已在正确的位置正确注册了 API 密钥? 这需要在 flutter 引擎启动之前在 appDelegate 类中注册。(请注意,这是一个 swift 文件)
import UIKit
import GoogleMaps
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GMSServices.provideAPIKey("super_secret_api_key")
GeneratedPluginRegistrant.register(with: self);
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
import UIKit
import Flutter
import GoogleMaps // Add this import
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
// TODO: Add your Google Maps API key
GMSServices.provideAPIKey("google_map_api_key")
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}