我正在使用Google Nexus 4.2.2 - 在Genymotion上使用Google API。谷歌地图片段即将出现空白。我已经注册了API并在清单文件中提供了密钥。谢谢你的帮助。
布局:
<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=".MapsTestActivity" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="0dp"/>
</RelativeLayout>
的活动:
package com.chaseit.activities;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import com.chaseit.R;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsTestActivity extends Activity {
static final LatLng HAMBURG = new LatLng(53.558, 9.927);
static final LatLng KIEL = new LatLng(53.551, 9.993);
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps_test);
// setupMap();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
setupMap();
super.onResume();
}
private void setupMap() {
GoogleMap map = ((MapFragment) 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);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.maps_test, menu);
return true;
}
}
我从http://www.vogella.com/articles/AndroidGoogleMaps/article.html
获得了示例代码答案 0 :(得分:0)
为了在我们的Android应用程序中使用google maps v2,必须使用google-play-services库。仅当传递上下文以检查服务是否可用于该设备时,此库才有效。在你的oncreate
中添加这一行GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
评论我的结果
答案 1 :(得分:0)
检查输出日志,搜索地图,并查看是否出现警告通知。就我而言,我发现:
09:03:34.197 E/Google Maps Android API( 7012): Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
03-22 09:03:34.198 E/Google Maps Android API( 7012): In the Google Developer Console (https://console.developers.google.com)
03-22 09:03:34.198 E/Google Maps Android API( 7012): Ensure that the "Google Maps Android API v2" is enabled.
03-22 09:03:34.198 E/Google Maps Android API( 7012): Ensure that the following Android Key exists:
仔细检查以下内容:
在清单中也设置了适当的权限 ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION ACCESS_LOCATION_EXTRA_COMMANDS ACCESS_MOCK_LOCATION
如果使用模拟器,请确保已安装Google Play服务(包括地图)。
可以找到更详细的说明here。
答案 2 :(得分:0)
在我的情况下,我没有找到解决方案,打开地图时地图是空白的,导航地图没有任何作用,但是我有一个PlaceAutocompleteFragment
,当我用它搜索要移动的地方时将地图映射到那个地方并可以使用,现在显示出地图,您可以浏览它。
您不必使用PlaceAutocompleteFragment
即可解决此问题,只需在加载地图时将相机移至所需的位置,然后从那里导航,这可以通过将其添加到{{1 }}函数:
onMapReady()