无法在Android模拟器上查看地图

时间:2010-07-06 03:03:22

标签: android

我无法在模拟器上查看地图。我在代理互联网连接下,我也通过GUI设置代理,并且还设置了api Key以及perimissions和库。

这是我的代码:

package com.example.MyMapActivity;
import org.apache.http.HttpHost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.DefaultHttpClient;
import android.os.Bundle;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;

public class MyMapActivity extends MapActivity {

private MapView mapview;
private MapController mapcontroller;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    DefaultHttpClient client = new DefaultHttpClient();

    String proxyHost = android.net.Proxy.getHost(this);
    if (proxyHost !=null) {
      int proxyPort = android.net.Proxy.getPort(this);

      HttpHost proxy = new HttpHost("*********", ***);

      client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    }
    //mapview = (MapView)findViewById(R.id.mapview);
}

@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    // this method must return true if your app returns driving directions , else return false
    return false;
}

}

布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView 
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
 android:apiKey="***********">     </com.google.android.maps.MapView>

主要文件

<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.MyMapActivity"
  android:versionCode="1"
  android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <uses-library android:name="com.google.android.maps"></uses-library>
    <activity android:name=".MyMapActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>
<uses-sdk android:minSdkVersion="7" />

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name ="android.permission.ACCESS_COARSE_LOCATION"/>

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,很长一段时间后我发现我在复制md5时犯了一个数字错误,所以发生器给我一个错误的api密钥。我的建议是先确保你复制了正确的md5。

答案 1 :(得分:1)

如果模拟器上没有安装Google地图,则无法使用MapView或任何其他与地图相关的活动。

您需要确保创建一个可以使用Google API的模拟器图像。

答案 2 :(得分:0)

如果显示了mapview但没有加载maptile,则可能是来自google的bug数据库中报告的bug ( Google Maps fails via mandatory web proxy)。仔细阅读有关该问题的所有信息。很可能这是你不会发现的错误,因为你认为这是谷歌的错。

在没有代理的情况下在某处测试应用程序以确认它在那里工作。