Flutter Google 地图在 IOS 中首次打开时崩溃

问题描述 投票:0回答:2

在启动屏幕之后,我的应用程序的第一页上有一个谷歌地图。 当我第一次运行该应用程序并且是一个非常新的版本时,它在 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 但它没有一个适当的解决方案。 谁能帮我解决这个问题吗?

google-maps flutter flutter-layout
2个回答
1
投票

您是否已在正确的位置正确注册了 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)
  }
}

0
投票
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)
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.