bas*_*svk 33 android google-maps-android-api-2
授权失败.有关如何正确设置地图的信息,请参阅https://developers.google.com/maps/documentation/android/start.
确保以下内容与API控制台中的内容相对应:软件包名称:com.company.app,API密钥:AIzaSyC***OsTeo,证书指纹:4E5285***6BF53ED3
无法与Google服务器联系.建立连接时将进行另一次尝试.
无法加载地图.联系Google服务器时出错 这可能是一个身份验证问题(但可能是由于网络错误).
我知道关于这个问题还有更多的问题.但我似乎无法让地图视图起作用.结果是一个空的地图视图(带有缩放按钮).
我做了什么:
- 下载/安装了google-play-services
- 已添加google-play-services.jar到libs/
- Google Maps API v2在code.google.com/apis/console中启用
- 设置正确的权限
这就是我的清单的样子:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<permission
android:name="com.company.app.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.company.app.permission.MAPS_RECEIVE" />
<application ...>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyC***OsTeo" />
</application>
Run Code Online (Sandbox Code Playgroud)
Google API控制台api访问权限如下所示:
Key for Android apps (with certificates)
API key: AIzaSyC***OsTeo
Android apps: 4E:52:85:***6B:F5:3E:D3;com.company.app
Activated on: Jun 18, 2013 11:07 PM
Activated by: my@email.com – you
Run Code Online (Sandbox Code Playgroud)
还有一些代码(我不知道为什么会导致授权错误):
FragmentManager fragmentManager = super.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
SupportMapFragment fragment = new SupportMapFragment();
fragmentTransaction.replace(R.id.mapContainer, fragment);
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我收到一条错误消息,指出包名称,API密钥和证书指纹与Google服务器不对应.但就像我上面写的那样,那些价值确实匹配......
Luk*_*rog 80
激活Google Maps Android API v2服务Google API's console.此外,进行更改后,在设备/模拟器上完全重新安装应用程序.
Ief*_*gen 12
对我来说,这很简单:当您在Android Studio中工作时,您可以在文件google_maps_api.xml中编写Google API密钥,但Android Studio仅在Project Manager中显示(调试)版本的密钥文件.你需要把钥匙放进去
\程序\ SRC \释放\水库\值\ google_maps_api.xml
文件也是(就像你把钥匙放在里面一样
\程序\ SRC \调试\水库\值\ google_maps_api.xml
)
设置API密钥时,软件包名称是package您的属性值manifest,而不是应用程序名称.
这(com.foo):
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.foo"
Run Code Online (Sandbox Code Playgroud)
不是这个(com.foo.MyApplication):
<application
android:name="com.foo.MyApplication"
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,但激活了正确的 api。问题是我在获取 SHA1 时使用了错误的密钥库文件。我使用了发布密钥库,而我需要使用:
keytool -list -v -keystore debug.keystore
Run Code Online (Sandbox Code Playgroud)
在这个文件上(mac osX 位置):
~/.android/debug.keystore
Run Code Online (Sandbox Code Playgroud)
这给了我在 google 控制台中输入的另一个 sha1,现在它可以工作了。
小智 5
请确保在 google 开发者控制台/凭据/包名称中正确键入了您的包名称。它必须是您的应用程序顶级包名称,例如。com.company.appname 不是 com.company.appname.ui.activity.maps 。我按照https://developers.google.com/maps/documentation/android/start 的说明操作,但在嵌套包中创建了 Activity。谷歌网页输入了嵌套的包名,我遇到了这个错误。
| 归档时间: |
|
| 查看次数: |
42861 次 |
| 最近记录: |