2013-10-15 115 views
-1

我正在嘗試谷歌地圖使用教程,但它不顯示地圖;只是灰色的瓷磚。請幫助我..我的項目因此被卡住了。谷歌地圖不被顯示;灰色瓷磚

這是我的代碼

以下是我再次嘗試編輯的代碼。請看看代碼和logcat文件。

清單文件

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

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="18" /> 

    <uses-feature 
     android:glEsVersion="0x00020000" 
     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.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
    <!-- 
    The following two permissions are not required to use 
    Google Maps Android API v2, but are recommended. 
    --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

    <permission 
     android:name="com.example.googlemapsv2.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="com.example.googlemapsv2.permission.MAPS_RECEIVE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.googlemapsv2.MainActivity" 
      android:label="@string/app_name" > 
      <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.maps.v2.API_KEY" 
      android:value="AIzaSyCmYChMyMqZCj5nZl-lykGioJwNGW-hTCA" /> 

    </application> 


</manifest> 

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

     <fragment 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:name="com.google.android.gms.maps.MapFragment" 
      /> 

</RelativeLayout> 

MainActivity.java

package com.example.googlemapsv2; 

import android.os.Bundle; 
import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.view.Menu; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 


public class MainActivity extends Activity { 

    GoogleMap map; 
    @SuppressLint("NewApi") 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) 
        .getMap(); 
    } 



} 

logcat的

10-17 19:16:53.750: E/Google Maps Android API(9452): Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map. 
10-17 19:16:53.750: E/Google Maps Android API(9452): Ensure that the following correspond to what is in the API Console: Package Name: com.example.googlemapsv2, API Key: AIzaSyCmYChMyMqZCj5nZl-lykGioJwNGW-hTCA, Certificate Fingerprint: 5A6683F0B22028AFBFF49C0EC90FCFA015AA20C6 
10-17 19:16:53.773: I/Google Maps Android API(9452): Failed to contact Google servers. Another attempt will be made when connectivity is established. 
+0

你是如何生成apikey的?你使用了教程中的那個嗎? – Marcelo

+0

不,我生成的谷歌地圖api V2 ..不是已棄用的人 –

+0

您正在使用谷歌地圖V1類。檢查我的答案在這裏http://stackoverflow.com/questions/15041200/google-maps-api-key-not-working-v2/15041476#15041476 – Marcelo

回答

2

請參閱此處,只需在清單文件中使用您的密鑰更改api密鑰,並按照以下步驟操作: 並確保您的google_play_services_lib項目僅應存在於項目工作空間中。

清單文件:

<uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="18" /> 

    <uses-feature 
     android:glEsVersion="0x00020000" 
     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.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.geeklabs.map.MainActivity" 
      android:label="@string/app_name" > 
      <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.maps.v2.API_KEY" 
    android:value="replace with your API key"/> 

    </application> 

</manifest> 

MainActivity.java:

package com.geeklabs.map; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

} 

activity_main.xml中:

<?xml version="1.0" encoding="utf-8"?> 
    <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:name="com.google.android.gms.maps.MapFragment"/> 

了之後這讓我知道。

+0

的activity_main的第一行<片段..給我一個錯誤 - 說明\t資源\t路徑\t位置\t類型 意外爲標記片段找到名稱空間前綴「xmlns」\t activity_main.xml \t/GoogleMapsV2/res/layout \t line 11 \t Android Lint問題 –

+0

k,從activity_main.xml中刪除先前的代碼,並將其與我發佈的代碼放在一起。通過右鍵單擊您的項目 - > Android工具 - >清除皮棉標記,忽略皮棉警告。可能會有所幫助。 –

+0

與上面「授權失敗」相同的錯誤:( –

0

由於您的清單設置不正確,導致地圖無法正常工作。用戶this tutorial從Android文檔,並確保您啓用所需的確切權限。你的API密鑰也在錯誤的地方。它進入你的清單,而不是片段。

+0

好吧,讓我試試,我會讓你知道。 –

+0

我跟着本教程,但它給了我錯誤的activity_main.xml文件 –

+1

說「它給我一個錯誤」根本沒有任何幫助。請告訴我們錯誤是什麼。 – Codeman

-1

在某些設備上加載時,Google地圖版本2存在一些問題,您只需重新啓動設備即可開始工作。

相關問題