2015-02-06 76 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