未找到Google Maps V2 API密钥(但它就在那里)

时间:2015-05-04 16:19:54

标签: android google-maps android-manifest api-key

我试图将现有的,有效的Google Maps App从API V1移植到V2。 我严格遵循developers.google.com上的指示,但仍然没有喜悦。问题是没有找到" API密钥"根据LogCat。 LogCat输出如下:

05-04 11:46:55.882: E/AndroidRuntime(15175): Caused by:ava.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your API key"/>
                is in the <application> element of AndroidManifest.xml
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.maps.api.android.lib6.d.fb.a(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.maps.api.android.lib6.a.g.a(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.maps.internal.CreatorImpl.b(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.maps.internal.CreatorImpl.b(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.maps.internal.i.onTransact(SourceFile:62)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at android.os.Binder.transact(Binder.java:380)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.maps.internal.zzc$zza$zza.zzk(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.maps.MapFragment$zzb.zztD(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.maps.MapFragment$zzb.zza(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.dynamic.zza.zza(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.dynamic.zza.onInflate(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2130)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at android.app.Activity.onCreateView(Activity.java:5610)
05-04 11:46:55.882: E/AndroidRuntime(15175):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:740)
05-04 11:46:55.882: E/AndroidRuntime(15175):    ... 19 more

那里:我的清单在下面(API密钥在此帖子中被删除):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.ramrod.GoogleMapV2"
  android:versionCode="100"
  android:versionName="1.00">

<uses-sdk
    android:minSdkVersion="17"
    android:targetSdkVersion="17"
/>
<uses-feature 
    android:glEsVersion="0x0020000"
    android:required="true"
/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFU_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"   />
<uses-permission android:name="android.permission.READ_GSERVICES"   />
<uses-permission android:name="android.permission.MAPS_RECEIVE"   />

<application
  android:icon="@drawable/icon"
  android:label="GoogleMapV2"
  android:allowBackup="false">
  <activity android:name=".GoogleMapV2Main"
            android:label="GoogleMapV2">
      <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
  </activity>
  <meta-data
      android:name="com.google.android.gms.version"
      android:value="@integer/google_play_services_version"
  />
  <meta-data
      android:name="com.google.android.maps.V2.API_KEY"
      android:value="AIzaSyC0T6B0VEcEALyQi3WXXXXXXXXXXXXXXXX"
  />
</application>
</manifest>

我一直在墙上撞了近一个星期,没有任何喜悦。我已经搜索过StackOverflow和网络:很多人有API密钥问题,但几乎普遍存在语法问题。除非我已经失去了XML,否则我不会认为这是我的问题。

有人看到我失踪的东西吗?

2 个答案:

答案 0 :(得分:3)

我不知道这可能是主要原因,但你有

<meta-data android:name="com.google.android.maps.V2.API_KEY" android:value="your API key"/>

其中 V2 的上限为 V ,而logcat表示将其置于较低的 v

 <meta-data android:name="com.google.android.maps.v2.API_KEY"
  android:value="AIzaSyC0T6B0VEcEALyQi3WXXXXXXXXXXXXXXXX" />

答案 1 :(得分:0)

您有两种类型的密钥,一种用于调试会话,另一种用于发布您的密钥。

对于Debug Keystore,您可以在Eclipse中获取SHA1值。

从菜单访问:窗口 - &gt;偏好 - &gt; Android - &gt;构建

可能你使用的是错误的SHA1值。

尝试将值直接放入清单中。不要使用@integer ....