我无法在模拟器上查看地图。我在代理互联网连接下,我也通过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"/>
答案 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)。仔细阅读有关该问题的所有信息。很可能这是你不会发现的错误,因为你认为这是谷歌的错。
在没有代理的情况下在某处测试应用程序以确认它在那里工作。