2015-02-06 80 views
1

所以我在Android Studio上製作了一個Android應用程序,它向我展示了Google地圖(它不是全部,但它是唯一相關的東西)。問題是,當我將地圖加載到片段上時,唯一顯示的是左下角的Google標記!谷歌地圖不在Android上顯示。只有Google Tag

MainAtivity.java

public class MainActivity extends FragmentActivity{ 

    GoogleMap googleMap; 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     createMapView(); 

    } 

    private void createMapView() { 
     /** 
     * Catch the null pointer exception that 
     * may be thrown when initialising the map 
     */ 
     try { 
      if (null == googleMap) { 
       googleMap = ((MapFragment) getFragmentManager().findFragmentById(
         R.id.map)).getMap(); 

       if(null != googleMap) { 
        Toast.makeText(getApplicationContext(), 
          "Mapa carregado!", Toast.LENGTH_SHORT).show(); 
       } 

       /** 
       * If the map is still null after attempted initialisation, 
       * show an error to the user 
       */ 


       if (null == googleMap) { 
        Toast.makeText(getApplicationContext(), 
          "Erro ao criar mapa", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     } catch (NullPointerException exception) { 
      Log.e("mapApp", exception.toString()); 
     } 

    } 

} 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:name="com.google.android.gms.maps.MapFragment" 
      android:id="@+id/map" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" /> 
    </LinearLayout> 
</RelativeLayout> 

的AndroidManifest.xml

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

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

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

<uses-permission android:name="com.example.gnr_p_v2.permission.MAPS_RECEIVE"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<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" /> 

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 

<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true"/> 

    <uses-sdk 
     android:minSdkVersion="15" 
     android:targetSdkVersion="19" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Light.NoTitleBar"> 

     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
     <uses-library android:name="com.google.android.maps"/> 

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

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:windowSoftInputMode="stateHidden" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 

      </intent-filter> 
     </activity> 


    </application> 

</manifest> 

結果

Screenshot of the GoogleMaps

我跟着酒店每天教程,我怕我會做出儘管我不知道哪裏錯了。

回答

3

首先,你應該改變

public class MainActivity extends FragmentActivity 

public class MainActivity extends Activity 

因爲你minsdk>12,你也使用MapFragment

而另一件事

你應該交叉檢查你的地圖API key

+1

謝謝,我不知道它是否做到了這一點,但我改變了FragmentActivity爲活動,如你所說。我也重拍了API KEY,現在它正在工作! 謝謝! :D – 2015-02-06 11:41:34

+0

@DiogoNunes呦歡迎budy !!!!! – 2015-02-06 11:55:15