MapView和ViewPager:不能使用BitmapDescriptorFactory

时间:2017-05-28 16:39:53

标签: android google-maps-api-2

所以这是交易:我在ViewPager中使用我的MapView。一切都运行良好,我转发生命周期等... 但由于BitmapDescriptorFactory抛出这个,我无法注册并创建 BitmapDescriptor

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)));
    }

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

1 个答案:

答案 0 :(得分:2)

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

BitmapDescriptorFactory.fromResource(R.drawable.loc)  

请参阅javadocsource code页面。

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