在设备上运行时出现mapview问题

时间:2012-12-03 16:52:44

标签: android android-mapview

我有一个使用谷歌MapView的应用程序。它在AVD上运行良好,但有时在我的LG Optimus Elite Android手机上运行不佳。当我在手机上启动应用程序时,当手机收到Wi-Fi信号时,地图不会显示 - 它只显示光栅标记。有时它不会显示地图20分钟,有时它会在5分钟后显示地图。如果我带着手机四处走动并离开Wi-Fi并转到3G,那么地图通常会在一分钟左右后出现。

MapView定义如下......

<com.google.android.maps.MapView
    android:id="@+id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:apiKey="my key goes here"
    android:clickable="true" />

当我启动应用程序时,我会执行以下操作...

static MapView myMapView;
static MapController mc;

myMapView = (MapView) findViewById(R.id.mapview);    
myMapView.setBuiltInZoomControls(true);
mc = myMapView.getController();   
mc.setZoom(20);
myMapView.setSatellite(true);
myMapView.setTraffic(false);    
myMapView.invalidate(); //(tried both with and without this invalidate)

同样,地图会立即显示在AVD模拟器中。

我是否需要采取措施来启动此地图?

2 个答案:

答案 0 :(得分:0)

这通常是API密钥问题。您需要在此处设置API KEY:

 android:apiKey="my key goes here"

答案 1 :(得分:0)

通常,地图应该像在模拟器中一样快地出现在设备中。

我曾经在我的应用中遇到过一个愚蠢的错误,导致了类似的行为。这与你将遇到完全相同的问题非常不同,但可以给你一个可能导致这种行为的暗示。

基本上,我有类似的东西:

private Runnable myRunable = new Runnable() {
    public void run() {
        //do something
    mHandler.postDelayed(myRunable , delay);    
    }
};

允许延迟为0,这会导致连续循环和非常高的CPU利用率。

奇怪的是,在模拟器中,虽然工作速度较慢。在设备中,需要很长时间才能在屏幕上绘制地图。

问候。