public class Map extends MapActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
MapView mapView = (MapView) findViewById(R.id.myMapView1);
mapView.getController().animateTo(srcGeoPoint);
mapView.getController().setZoom(15);
}
map.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
android:id="@+id/myMapView1"
android:layout_width="fill_parent"
android:layout_x="0px"
android:enabled="true"
android:clickable="true"
android:apiKey="Obtained Key here" android:layout_y="105px" android:layout_height="fill_parent">
</com.google.android.maps.MapView>
</LinearLayout>
我检查日志只有一个红色标记,无法找到com.google.settings的提供商信息。其他一切似乎没问题。我想知道为什么地图是空的?
答案 0 :(得分:4)
当Maps API密钥过期或与您的调试签名密钥不匹配时,MapView为空。 尝试生成一个新的。
答案 1 :(得分:0)
在每个MapActivity中,都需要isRouteDisplayed()方法, 所以重写这个方法:
@Override protected boolean isRouteDisplayed(){ 返回false; }
此方法是地图服务的某些会计所必需的 看看你目前是否正在显示任何路线信息。在这 你没有,所以回复假。
来源:http://developer.android.com/resources/tutorials/views/hello-mapview.html
android:layout_x="0px
对我来说看起来有点狡猾。我认为它只在AbsoluteLayouts中使用,所以删除它不应该受到伤害。
答案 2 :(得分:0)
请检查日志是否“无法验证来自Google服务器的错误”。如果是,则映射密钥存在问题。 应在运行应用程序的同一系统上生成Map键。 同时检查您是否已启用Google Play帐户并启用了位置设置。
请点击此处了解更多详情: https://developers.google.com/maps/documentation/android/start