我正在尝试按照他们网站上的指南测试 SDK 中的 Google Maps 示例代码。
在对设置、构建路径和类路径进行了一些修改之后,我设法让它编译并部署到我的设备(物理设备,而不是模拟器)上。但是,我在 logcat 中收到授权失败错误。我已将我的 API 密钥输入到 AndroidManifest.xml 中。
除了该更改之外,示例中的其他代码均未更改。
我知道我已经添加了支持 jar 并正确引用了库项目,因为应用程序已编译。我能想到的只是不知何故签名证书是错误的。在包装过程中,我看到了这个:
[2013-01-28 10:35:00 - MainActivity] Using default debug key to sign package
[2013-01-28 10:35:00 - MainActivity] Using keystore: /home/user/.android/debug.keystore
[2013-01-28 10:35:00 - MainActivity] Packaging MainActivity.apk
所以它使用的是 debug.keystore。
使用
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android | grep SHA1
我发现我的调试证书是:
SHA1: {KEY_HIDDEN}
因此,我将其添加到 Google API 控制台中,如下所示:
{KEY_HIDDEN};com.example.mapdemo
由于示例应用程序的包是com.example.mapdemo
我得到了一个 API 密钥。就我而言,它是
AIzaSyAW8nihGO9uSW170YETE-Q1pPjFAW-B4M8
所以我将它添加到我的 AndroidManifest.xml
<application
android:icon="@drawable/ic_launcher"
android:label="@string/demo_title"
android:hardwareAccelerated="true">
<!-- You must insert your own Google Maps for Android API v2 key in here. -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAW8nihGO9uSW170YETE-Q1pPjFAW-B4M8"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
但是,我不断得到:
01-28 10:54:39.423:E/Google Maps Android API(28778):授权失败。
而且我不知道为什么......有人有什么想法吗?