我正在尝试在我的活动中加载Google mmaps。在经历了一系列错误之后,我的日志猫终于向我显示了这个错误:
03-11 23:42:08.390: E/MapActivity(712): Couldn't get connection factory client
地图活动不会加载任何内容。我试着寻找解决方案,并且:
<uses-permission android:name="android.permission.INTERNET"/>
uses-library android:name="com.google.android.maps"/>
我的猜测是我无法访问互联网。我试图在模拟器中打开浏览器,但无法打开任何URL。所以我想我在模拟器上无法访问互联网。在搜索了一段关于在模拟器上连接互联网并参考this question之后,我尝试运行命令:C:\program files\android\android-sdk-windows\tools\emulator -avd -dns-server 8.8.8.8
但我最终得到了错误:
PANIC: Could not open: C:\Documents and Settings\dwadasi\.android/avd/-dns-serv
r.ini
我无法理解问题所在。我尝试在我的Android手机上安装APK文件[2.3.6]并且它有效。但我真的需要它在我的模拟器上工作,因为我还需要做很多开发。
答案 0 :(得分:0)
我在开发过程中经常遇到这种情况。通常我只是杀死模拟器并创建一个新的东西并自行修复。
您在使用浏览器测试互联网连接方面做得很对。如果你没有连接,那么映射就无法工作。
答案 1 :(得分:0)
试试这个代码....我用这个,现在正在工作。
class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
//---translate the GeoPoint to screen pixels---
Point screenPts = new Point();
mapView.getProjection().toPixels(p, screenPts);
//---add the marker---
Bitmap bmp = BitmapFactory.decodeResource(
getResources(), R.drawable.pushpin2);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
add="";
//---when user lifts his finger---
if (event.getAction() == 1) {
GeoPoint p = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
Geocoder geoCoder = new Geocoder(
getBaseContext(), Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocation(
p.getLatitudeE6() / 1E6,
p.getLongitudeE6() / 1E6, 1);
lattitude=p.getLatitudeE6() / 1E6;
longitude=p.getLongitudeE6() / 1E6;
if (addresses.size() > 0)
{
for (int i=0; i<addresses.get(0).getMaxAddressLineIndex();
i++)
add += addresses.get(0).getAddressLine(i) + "\n";
}
Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show();
}
catch (IOException e) {
e.printStackTrace();
}
return true;
}
else {
return false;
}
}
}