我正在尝试从他们的网站guide之后测试SDK中的Google地图示例代码。
在对设置,构建路径和类路径进行一些修改之后,我设法将其编译并部署到我的设备上(物理设备,而不是模拟器)。但是,我在logcat中收到Authorization Failed错误。我已将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):授权失败。
我不知道为什么......有没有人有任何想法?
答案 0 :(得分:0)
对于设备 - 您必须创建已签名的应用程序包。
当您生成调试证书时,您必须使用为签名应用程序而创建的密钥库(不是调试密钥库) 。
更新你的密钥清单并尝试运行。
希望这会有所帮助。
编辑:
keytool -v -list -keystore your_keystore