空白地图屏幕打开,同时使用谷歌地图Api v2



我正在尝试使用谷歌地图Api V2并遵循Android谷歌地图文章中的所有步骤

但是在所有步骤之后,代码在我的android 2.36的galaxy young上执行,但是空白地图屏幕显示

我的主要活动代码是

  protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.showmapactivity_layout);
FragmentManager myFragmentManager = getSupportFragmentManager();
SupportMapFragment mySupportMapFragment 
 = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
map = mySupportMapFragment.getMap();
//map = getFragmentManager().findFragmentById(R.id.map)).getMap();
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
    .title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
    .position(KIEL)
    .title("Kiel")
    .snippet("Kiel is cool")
    .icon(BitmapDescriptorFactory
        .fromResource(R.drawable.ic_launcher)));
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}

Maifestfile code is

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.archifiles.pointpakistan"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="10" />
<permission
    android:name="com.archifiles.pointpakistan.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />
<uses-permission android:name="com.archifiles.pointpakistan.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<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.archifiles.pointpakistan.SplashScreenActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity"></activity>
    <activity android:name=".POIActivity"></activity>
    <activity android:name=".ShowMapActivity"></activity>
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyDe_pk7x98rwq2GTkaaUUv0K0Yri3TRPUA" />
    <uses-library  
   android:name="com.google.android.maps"  
   android:required="true" /> 
</application>

布局文件代码

<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"
tools:context=".MainActivity" >
<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />
</RelativeLayout> 

log cat中没有日志跟踪

实际上您使用的是SupportMapFragment。像

SupportMapFragment gm;
  gm = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();

所以在xml文件中你也必须像这样使用

      <fragment  
      android:id="@+id/map"
      android:name="com.google.android.gms.maps.SupportMapFragment"
      />

希望它能起作用。

删除清单

中的下面一行
<uses-library  
 android:name="com.google.android.maps"  
 android:required="true" /> 

这个问题是因为无效的密钥而发生的,生成一个有效的密钥并在hashkey的末尾添加您当前的包名。

获取密钥:

In the left navigation bar, click API Access.
In the resulting page, click Create New Android Key....
In the resulting dialog, enter the SHA-1 fingerprint, then a semicolon, then your application's package name. For example:
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.mapexample
The Google APIs Console responds by displaying Key for Android apps (with certificates) followed by a forty-character API key, for

的例子:

AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0
Copy this key value. You will use it in the next step.

查看此url

https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key

最新更新