谷歌地图示例代码:试图弄清楚为什么我会一直收到验证失败

时间:2013-01-28 11:08:05

标签: android google-maps

我正在尝试从他们的网站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):授权失败。

我不知道为什么......有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

对于设备 - 您必须创建已签名的应用程序包。
当您生成调试证书时,您必须使用为签名应用程序而创建的密钥库(不是调试密钥库) 。
更新你的密钥清单并尝试运行。
希望这会有所帮助。

编辑:     keytool -v -list -keystore your_keystore