MapView在Android应用程序

问题描述:

我想包括谷歌地图在我的Android应用程序。MapView在Android应用程序

我通过this程序获取Map API密钥。

得到密钥后,我写了下面的代码在我的应用程序中显示地图。

我的清单文件

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.mymap" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="17" /> 

<uses-permission android:name="android.permission.INTERNET" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <uses-library android:name="com.google.android.maps" /> 

    <activity 
     android:name="com.example.mymap.LocationActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

布局 <com.google.android.maps.MapView android:id="@+id/mapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="mykey" android:clickable="true" android:enabled="true" />

当我跑我得到这样一个例外的应用程序。

03-28 14:31:14.868: W/System.err(21147): IOException processing: 26 

03-28 14:31:14.868: W/System.err(21147): java.io.IOException: Server returned: 3 

03-28 14:31:14.868: W/System.err(21147): at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 

03-28 14:31:14.868: W/System.err(21147): at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473) 

03-28 14:31:14.868: W/System.err(21147): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117) 

03-28 14:31:14.868: W/System.err(21147): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994) 

03-28 14:31:14.868: W/System.err(21147): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702) 

03-28 14:31:14.868: W/System.err(21147): at java.lang.Thread.run(Thread.java:856) 

请帮我解决这个问题。

+0

有啥你的错误? – 2013-03-28 09:35:16

+0

更新我的问题 – user965071 2013-03-28 09:39:18

这是一个已知的错误,当你与你的API密钥的一个问题:

在下面的帖子看看:

android, google map errors: BaseTileRequest, Server returned: 3

Google map signed api key errors in Android

UPDATE:

从您发布的链接获取密钥正在获得Google Map API V2的关键,因此它不适用于Google Maps API V1。

为了整合谷歌地图API V2你可以按照这个博客帖子我在这个题目写道:

Google Map API V2

+0

查看更新的答案。 – 2013-03-28 13:06:05

记住MapView的折旧。支持Google maps V2。你不能得到一个新的地图v1 API密钥。

尝试以下数据添加到您的清单:

visit here,如果你已经在使用V2更多了解地图V2

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
    <permission 
    android:name="com.example.mapdemo.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="com.ikolmobile.magicmap.permission.MAPS_RECEIVE" /> 
    <!-- My Location --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <!-- Maps API needs OpenGL ES 2.0. --> 
    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 


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