尝试使用google maps plugin在Flutter项目中显示地图时,出现授权失败。
我收到此错误:
Authorization failure. Please see
https://developers.google.com/maps/documentation/android-api/start for how
to correctly set up the map.
E/Google Maps Android API(11104): In the Google Developer Console
(https://console.developers.google.com)
E/Google Maps Android API(11104): Ensure that the "Google Maps Android API
v2" is enabled.
E/Google Maps Android API(11104): Ensure that the following Android Key
exists:
E/Google Maps Android API(11104): API Key:
xxxxxxxxxxxxxxxxxxxxxxxxxx
E/Google Maps Android API(11104): Android Application (<cert_fingerprint>;
<package_name>):
我想我遵循了这封信的指示。此处说是为了确保启用Google Maps Android API v2,但该API列表中不存在该API,我想它已在我启用的Android Maps SDK中重命名。
我添加了API密钥,并将其限制在Android应用程序中,并且占用了应用程序的空间。其他人有这个问题吗?
答案 0 :(得分:0)
我面临同样的问题。
首先在Google中启用Android Map SDK https://console.developers.google.com/google/maps-apis/overview?project=studious-optics-233010
并确保您的设备可以上网。.
代码...
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class MapDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
home: MapTest(),
);
}
}
class MapTest extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return MapState();
}
}
class MapState extends State<MapTest> {
Completer<GoogleMapController> _controller = Completer();
static const LatLng _center = const LatLng(23.521563, -72.677433);
void _onMapCreated(GoogleMapController controller) {
_controller.complete(controller);
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text("Map Demo"),
),
body: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: GoogleMap(
initialCameraPosition: CameraPosition(target: _center, zoom: 10.0),
onMapCreated: _onMapCreated,
),
),
);
} }
答案 1 :(得分:0)
您可能需要检查以确保您具有所使用的API密钥上授权的正确SHA1指纹。请记住,应用程序的调试版本(通过模拟器或测试设备在Android Studio中进行测试时将是默认版本)与发布版本(您将发布到Google Play商店)的SHA1指纹不同。
您可以在单个API密钥上添加多个限制,以允许在同一API密钥上同时授权调试和发布SHA1。
可以找到找到发行版本的SHA1的步骤 此处:https://developers.google.com/maps/documentation/android-sdk/signup#release-cert
答案 2 :(得分:0)
您只需要转到Meteor methods并为Android启用MAP SDK API,请确保已启用您使用的所有其他sdk api(适用于ios,道路,地点等的MAP),否则,如果通过您的应用发出的呼叫不会获得授权
答案 3 :(得分:0)
1-转到https://console.developers.google.com/apis/credentials
2-调试证书的烙印
对于Linux或macOS:
$ keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
对于Windows:
$ keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
生产证书的烙印
$ keytool -list -v -keystore your_keystore_name -alias your_alias_name
3-限制使用Android应用程序 *添加您的应用程序ID *添加您先前生成的sha1
4-颤振干净
5-卸载应用程序并重建