1

我正在尝试按照他们网站上的指南测试 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):授权失败。

而且我不知道为什么......有人有什么想法吗?

4

1 回答 1

0

对于设备 - 您必须创建一个签名的应用程序包。
此外,当您生成调试证书时,您必须使用您为签署应用程序创建的密钥库(而不是调试密钥库)。
更新清单中的密钥并尝试运行。
希望这可以帮助。

编辑:keytool -v -list -keystore your_keystore

于 2013-01-28T11:26:43.503 回答