我正在尝试使用谷歌地图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