【问题标题】:Unknown Source when adding a Circle in Google Maps V2在 Google Maps V2 中添加圈子时来源不明
【发布时间】:2016-05-16 18:14:26
【问题描述】:

我有一张地图,我在上面添加标记并围绕它圈,但是当我尝试添加圈时它会给出一个 nullpointerEcxeption,我不知道是什么原因造成的。我可以添加标记,地图显示正确。

      add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (name.getText() == null || radius.getText() == null) {
                    Toast.makeText(getContext(), "Name and Radius Please", Toast.LENGTH_SHORT).show();
                } else {       

                    CircleOptions c = new CircleOptions().strokeColor(Color.BLUE).radius(Integer.parseInt(radius.getText().toString()));                                                                               This is the line where it happens
                    **googlemap.addCircle(c);**
                    DataBaseOperations hell = new DataBaseOperations(getContext());
                    SQLiteDatabase db = hell.getWritableDatabase();
                    hell.SaveMarker(name.getText().toString(),c.getRadius(),marker.getId(),latLng,db);
                    item.setVisibility(View.INVISIBLE);
                    hell.close();
                    db.close();

                }
            }
        });

这是我的堆栈

   java.lang.NullPointerException
                                                                              at com.google.a.a.ae.a(Unknown Source)
                                                                              at com.google.maps.api.android.lib6.e.eg.<init>(Unknown Source)
                                                                              at com.google.maps.api.android.lib6.e.ev.a(Unknown Source)
                                                                              at com.google.android.gms.maps.internal.j.onTransact(SourceFile:390)
                                                                              at android.os.Binder.transact(Binder.java:387)
                                                                              at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.addCircle(Unknown Source)
                                                                              at com.google.android.gms.maps.GoogleMap.addCircle(Unknown Source)
                                                                              at com.example.umerasif.homealarm.Map$3.onClick(Map.java:160)
                                                                              at android.view.View.performClick(View.java:5198)
                                                                              at android.view.View$PerformClick.run(View.java:21147)
                                                                              at android.os.Handler.handleCallback(Handler.java:739)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                              at android.os.Looper.loop(Looper.java:148)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

这是我的 googleMap 设置。

      @Override
public void onMapReady(GoogleMap googleMap) {
    setmap(googleMap);
}

public void setmap(final GoogleMap map) {
    googlemap = map;
    if(googlemap != null){
    if (sharedPreferences.getBoolean(CustomAlarm.satellite, false)) {
        googlemap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
    } else {
        googlemap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
    }
    googlemap.getUiSettings().setScrollGesturesEnabled(true);

    googlemap.setOnMapLongClickListener(this);
    googlemap.setLocationSource(new com.example.umerasif.homealarm.LocationSource(getContext(), googlemap));
    MapStateListener mapStateListener = new MapStateListener(googlemap, app_touchableMapFragment, getActivity(), pager);
    mapStateListener.setStateListener(this);
}}

【问题讨论】:

  • 你能说明你是如何获得 googlemap 参考的吗?
  • @IgorB 我已经更新了我的问题。
  • 可能是您错过了center(position) 电话,请查看此答案中对map.addCircle() 的电话:stackoverflow.com/a/30171471/4409409
  • @DanielNugent 谢谢:d

标签: android google-maps dictionary nullpointerexception


【解决方案1】:

地图未加载,您是否添加了这行代码来设置地图? SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager () .findFragmentById (R.id.map); mapFragment.getMapAsync (this); 同步您的地图。如果您不同步地图,您将遇到未知来源问题。从如何使用谷歌地图的教程点看这个教程 http://www.tutorialspoint.com/android/android_google_maps.htm 希望对您有所帮助

【讨论】:

  • 地图显示正确,先生,地图加载没有问题。
【解决方案2】:

原来我错过了圆心。谢谢丹尼尔。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2013-03-14
    • 2015-08-14
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多