我正在尝试将 Google 地图集成到我的 Flutter 项目中。我已按照以下步骤操作:
生成了 Google 地图 API 密钥。 已在我的 Google Cloud 帐户上启用结算功能。 添加了必要的权限并设置了 android/app/src/main/AndroidManifest.xml 文件。 在清单中添加了 API 密钥。 但是,当我运行该应用程序时,它立即崩溃,没有任何错误日志,我不明白为什么。
有人可以帮助我找出我可能缺少的内容或建议解决此问题的方法吗?
E/flutter ( 3558): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648:7)
E/flutter ( 3558): #1 Meth
W/.example.zoome( 3558): Accessing hidden field Ljava/net/Socket;->impl:Ljava/net/SocketImpl; (light greylist, reflection)
W/.example.zoome( 3558): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (light greylist, linking)
W/.example.zoome( 3558): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (light greylist, linking)
W/.example.zoome( 3558): Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (light greylist, reflection)
W/.example.zoome( 3558): Accessing hidden method Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy; (light greylist, linking)
W/.example.zoome( 3558): Accessing hidden method Ldalvik/system/BlockGuard$Policy;->onNetwork()V (light greylist, linking)
E/AndroidRuntime( 3558): FATAL EXCEPTION: androidmapsapi-ula-1
E/AndroidRuntime( 3558): Process: com.example.zoomer, PID: 3558
E/AndroidRuntime( 3558): java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml
E/AndroidRuntime( 3558): at com.google.maps.api.android.lib6.common.c.b(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:109)
E/AndroidRuntime( 3558): at com.google.maps.api.android.lib6.impl.hg.run(:com.google.android.gms.policy_maps_core_dynamite@[email protected]:571)
E/AndroidRuntime( 3558): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime( 3558): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime( 3558): at java.lang.Thread.run(Thread.java:764)
I/Process ( 3558): Sending signal. PID: 3558 SIG: 9
Lost connection to device.
在我的清单文件中我添加了:
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="${MAPS_API_KEY}" />
我把它直接放在标签下:
<meta-data android:name="flutterEmbedding"
android:value="2" />
为了不意外地将 API 密钥推送到 git,我将密钥添加到
local.properties
文件中,如下所示:
MAPS_API_KEY=api_key_here
如果您都做了同样的事情,那么也许最后一个选项是您需要启用“Maps SDK for Android”。
最后查看原始包(如果您还没有这样做):https://pub.dev/packages/google_maps_flutter