Java 无法在Android中使用Mapoverlays。。继续获取空异常

Java 无法在Android中使用Mapoverlays。。继续获取空异常,java,android,google-maps,Java,Android,Google Maps,我已经尝试了谷歌上的每一个例子,以及在stackoverflow和其他网站上找到的每一个解决方案。。但是这个我就是不能去上班 现在我使用androids自己的网站上的例子,在那里我创建了一个单独的类。这是我的代码: super.onCreate(savedInstanceState); setContentView(R.layout.win_showmap) ; MapView map = (MapView) findViewById(R.id.googlema

我已经尝试了谷歌上的每一个例子,以及在stackoverflow和其他网站上找到的每一个解决方案。。但是这个我就是不能去上班

现在我使用androids自己的网站上的例子,在那里我创建了一个单独的类。这是我的代码:

        super.onCreate(savedInstanceState);
    setContentView(R.layout.win_showmap) ;

    MapView map = (MapView) findViewById(R.id.googlemap) ;
    map.setBuiltInZoomControls(true);
    mapController = map.getController() ;
    mapController.setZoom(12);

    int lat = (int)(Double.parseDouble(GlobalClass.pass_lattitude) * 1000000) ;
    int lon = (int)( Double.parseDouble(GlobalClass.pass_longitude) * 1000000);
    GeoPoint point = new GeoPoint(lat,lon) ;
    p = point ;
    mapController.animateTo(point) ;
    //---Add a location marker---

    List<Overlay> mapOverlays = mapView.getOverlays();
    Drawable drawable = this.getResources().getDrawable(R.drawable.pushpin);
    Mapoverlays itemizedoverlay = new Mapoverlays(drawable);


    OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!");

    itemizedoverlay.addOverlay(overlayitem);
    mapOverlays.add(itemizedoverlay);
super.onCreate(savedInstanceState);
setContentView(R.layout.win_showmap);
MapView地图=(MapView)findViewById(R.id.googlemap);
map.setBuiltInZoomControls(真);
mapController=map.getController();
mapController.setZoom(12);
int lat=(int)(Double.parseDouble(GlobalClass.pass\u latitude)*1000000);
int lon=(int)(Double.parseDouble(GlobalClass.pass_经度)*1000000);
地质点=新的地质点(纬度、经度);
p=点;
mapController.animateTo(点);
//---添加位置标记---
List mapOverlays=mapView.getOverlays();
Drawable Drawable=this.getResources().getDrawable(R.Drawable.pushpin);
Mapoverlays ItemizeOverlay=新的Mapoverlays(可绘制);
OverlayItem OverlayItem=新的OverlayItem(指向“你好,芒多!”,“我在墨西哥城!”);
itemizedoverlay.addOverlay(overlayitem);
添加(itemizedoverlay);
通过使用Log.d,我可以找到产生空点错误的崩溃点,即行: List mapOverlays=mapView.getOverlays()

我的API键工作得很好,因为如果我删除6行mapoverlay代码,我就可以使用该地图。 不知道这是否意味着什么,但我得到这些日志时,没有覆盖代码

02-03 22:44:05.892:I/MapActivity(2374):处理网络更改通知:已连接 02-03 22:44:05.892:E/MapActivity(2374):无法获取连接工厂客户端

如果我包含覆盖代码,它会崩溃,我会得到日志: 02-03 22:45:33.183:E/AndroidRuntime(2465):致命异常:主 02-03 22:45:33.183:E/AndroidRuntime(2465):java.lang.RuntimeException:无法启动活动组件信息{com.closebuy.namespace/com.closebuy.namespace.Show_map}:java.lang.NullPointerException 02-03 22:45:33.183:E/AndroidRuntime(2465):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 02-03 22:45:33.183:E/AndroidRuntime(2465):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 02-03 22:45:33.183:E/AndroidRuntime(2465):在android.app.ActivityThread.access$2300(ActivityThread.java:125) 02-03 22:45:33.183:E/AndroidRuntime(2465):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 02-03 22:45:33.183:E/AndroidRuntime(2465):位于android.os.Handler.dispatchMessage(Handler.java:99) 02-03 22:45:33.183:E/AndroidRuntime(2465):在android.os.Looper.loop(Looper.java:123)上 02-03 22:45:33.183:E/AndroidRuntime(2465):位于android.app.ActivityThread.main(ActivityThread.java:4627) 02-03 22:45:33.183:E/AndroidRuntime(2465):位于java.lang.reflect.Method.Invokenactive(本机方法) 02-03 22:45:33.183:E/AndroidRuntime(2465):位于java.lang.reflect.Method.invoke(Method.java:521) 02-03 22:45:33.183:E/AndroidRuntime(2465):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 02-03 22:45:33.183:E/AndroidRuntime(2465):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 02-03 22:45:33.183:E/AndroidRuntime(2465):在dalvik.system.NativeStart.main(本机方法) 02-03 22:45:33.183:E/AndroidRuntime(2465):由以下原因引起:java.lang.NullPointerException 02-03 22:45:33.183:E/AndroidRuntime(2465):位于com.closebuy.namespace.Show_map.onCreate(Show_map.java:48) 02-03 22:45:33.183:E/AndroidRuntime(2465):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 02-03 22:45:33.183:E/AndroidRuntime(2465):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

我已经在emulator和Galaxy S2上试用过。。请帮帮我,我真的不想这样做

通过使用Log.d,我可以找到导致空点错误的崩溃点,即:List maposoverlays=mapView.getOverlays()

您在哪里声明和初始化变量
mapView
?我看到的唯一初始化的
MapView
类型变量是
map

MapView map = (MapView) findViewById(R.id.googlemap) ;
因此,我会尝试:

List<Overlay> mapOverlays = map.getOverlays();
List mapOverlays=map.getOverlays();

如果仍然出现空指针错误,则在
win\u showmap.xml
布局中没有声明MapView视图。

我知道此示例的文档中存在错误。根据记忆,我认为构造函数是完全错误的。我想应该是这样

public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
        // super(defaultMarker); <<<< REPLACE THIS WITH THE LINE BELOW
        super(boundCenterBottom(defaultMarker));
        mContext = context;
    }
public HelloItemizedOverlay(可绘制的默认标记,上下文){

//super(defaultMarker);对不起,我忘记了“top”:公共类Show\u map扩展了MapActivity{private MapController MapController;MapView MapView;MapController mc;GeoPoint p;So
MapView
已声明但未初始化。您是否尝试使用我编写的初始化变量?该死,我现在觉得很傻!我花了4个小时试图找出错误,然后是因为我使用了我猜到的变量g是我尝试的第一个例子之一。这解决了所有问题。非常感谢!非常好,祝你在应用程序的其余部分好运。是的,我在这里通过另一个线程找到了这一个。结果发现这是我犯的完全不同的错误