2013-03-28 67 views
0

我想包括谷歌地圖在我的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

回答

0

這是一個已知的錯誤,當你與你的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

0

記住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" />