MapView 和 ViewPager:不能使用 BitmapDescriptorFactory

MapView and ViewPager : cannot use BitmapDescriptorFactory

事情是这样的:我在 ViewPager 中使用我的 MapView。一切正常,我已经转发了生命周期,等等...... 但是我无法注册和创建 BitmapDescriptor 因为 BitmapDescriptorFactory 抛出了这个:

java.lang.IllegalAccessError: Method 'void com.google.android.gms.maps.model.BitmapDescriptorFactory.<init>()' is inaccessible to class 'fr.defvs.gtfs.MainActivity$MapFrag'

这是我的 GoogleMap 的 OnLongClick 侦听器:

gMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener(){

                @Override
                public void onMapLongClick(LatLng p1)
                {
                    lat.setText("Lat : " + String.valueOf(p1.latitude));
                    lon.setText("Lon : " + String.valueOf(p1.longitude));
                    selectedLatLng = p1;
                    MapsInitializer.initialize(getContext());
                    addLocation(p1);
                    gpsButton.setChecked(false);
                    gpsMode = false;
                }

        });

还有我的 addLocation 方法:

public void addLocation(LatLng latlng)
    {
        gMap.addMarker(new MarkerOptions().position(latlng)
            .flat(true).icon(new BitmapDescriptorFactory().fromResource(R.drawable.loc)));
    }

执行该方法时,我得到的只是那个令人讨厌的错误... 谢谢 ;)

BitmapDescriptorFactory 有一个私有构造函数,因此您不能创建它的实例。
相反,它的所有方法都是静态的,因此您不需要实例。

BitmapDescriptorFactory.fromResource(R.drawable.loc)  

查看 javadoc and source code 页。

我很惊讶你没有收到编译时错误。您不使用带有代码分析的 IDE 吗?