尽管 API 成功命中,但 Google 地图并未显示在 Flutter 应用程序中

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

Stack Overflow 社区您好,

我正在开发一个与 Google 地图集成的 Flutter 应用程序。即使 API 命中显示在 Google Cloud Platform 控制台中(表明请求成功),我的地图也没有显示。

这是我迄今为止所做的工作的概要:

  • 已验证我的 API 密钥是否正确放置在 AndroidManifest.xml 中。
  • 在 AndroidManifest.xml 中设置必要的位置和互联网权限。
  • 在模拟器上测试了该应用程序。
  • 确保为 Google Cloud Platform 上的正确项目激活 API 密钥,没有任何限制。
  • 更新到最新版本的 Flutter 和 google_maps_flutter 插件。

下面是我在 dart 中实现的核心代码片段:

class CirclesPage extends StatefulWidget {
  const CirclesPage({Key? key}) : super(key: key);

  @override
  _CirclesPageState createState() => _CirclesPageState();
}

class _CirclesPageState extends State<CirclesPage> {
  GoogleMapController? _controller;
  LatLng currentLocation = LatLng(46.8182, 8.2275); // Default to Switzerland

  @override
  void initState() {
    super.initState();
    _determinePosition().then((_) => _goToCurrentLocation());
  }

  void _onMapCreated(GoogleMapController controller) {
    _controller = controller;
    _goToCurrentLocation();
  }

  Future<void> _goToCurrentLocation() async {
    if (_controller == null) return;
    _controller!.animateCamera(CameraUpdate.newLatLngZoom(currentLocation, 15.0));
  }

  Future<void> _determinePosition() async {
    // Location service check and permission handling logic
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Maps Sample')),
      body: GoogleMap(
        onMapCreated: _onMapCreated,
        myLocationEnabled: true,
        initialCameraPosition: CameraPosition(
          target: currentLocation,
          zoom: 15.0,
        ),
      ),
    );
  }
}

日志确认调用了 initState、onMapCreated 和 build 函数,但应该显示地图的屏幕仍为空白。

对于我可能缺少的内容或下一步应该采取哪些步骤来解决此问题的任何建议或见解,我将不胜感激。

提前谢谢您!

更新1:我现在正在处理。我很可能在 SHA-1 密钥上犯了错误。我会处理这个问题,并在必要时删除该问题。

更新 2:不幸的是,SHA-1 密钥的更新尚未显示出任何积极的进展。 请求和地图显示唯一起作用的时候是我在终端中执行以下命令时:

flutter clean

flutter pub get

然后调用页面

flutter dart google-maps
1个回答
0
投票

我尝试运行您的代码,地图正确显示。这表明问题可能与您的特定设置有关。

过去帮助我解决类似“地图未显示”问题的方法是将我的 API 密钥放在

application
文件中的
android/app/src/main/AndroidManifest.xml
标签内。

像这样:

© www.soinside.com 2019 - 2024. All rights reserved.