我试图在我的一个活动上显示一个非常基本的MapView,但是,我的MapView永远是空白的,从不加载任何地图。所述MapView只是一个200px高度的活动,具有其他元素。我没有从向导中创建Map活动。
我的清单有:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!--
The API key for Google Maps-based APIs.
-->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="my real code" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
我的build.gradle具有依赖关系:
compile 'com.google.android.gms:play-services-maps:10.2.1'
我的AndroidStudio有GooglePlay包。你知道我错过了吗?
这是我的mapView的xml代码:
<LinearLayout
android:id="@+id/geolocationLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="Geolocation"
android:textStyle="bold|italic" />
<com.google.android.gms.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="200dp" />
</LinearLayout>
这是我的活动java类地图声明和加载:
声明:
MapView mapView;
GoogleMap map;
static final LatLng HAMBURG = new LatLng(53.558, 9.927);
在OnCreateView中:
mapView = (MapView) view.findViewById(R.id.mapView);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
}
});
答案 0 :(得分:1)
注意:我假设您有有效的密钥
mapView = (MapView) view.findViewById(R.id.mapView);
mapView .onCreate(null);
mapView.getMapAsync(...)
并且还使用下面所需的其他方法,请参阅下面的文档了解所有方法
@Override
public void onResume() {
super.onResume();
mapView .onResume();
}