无法解析符号OnMyLocationClickListener

问题描述 投票:0回答:1

当我使用此方法然后错误:无法解析符号OnMyLocationClickListener甚至我已经使用OnMapReadyCallback实现此方法,并且下面的gradle依赖项是可以的。

private GoogleMap.OnMyLocationClickListener onMyLocationClickListener =
    new GoogleMap.OnMyLocationClickListener() {
        @Override
        public void onMyLocationClick(@NonNull Location location) {

        }
    };

MapsActivity.java此最后一个方法显示的Activity无法解析符号。

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
SupportMapFragment mapFragment;
private GoogleMap mMap;
private GoogleMap.OnCameraIdleListener onCameraIdleListener;
private TextView resutText;
@Override
protected void onCreate(Bundle savedInstanceState) {
    if (Build.VERSION.SDK_INT < 22)
        setStatusBarTranslucent(false);
    else
        setStatusBarTranslucent(true);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    resutText = (TextView) findViewById(R.id.dragg_result);
    mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
    configureCameraIdle();
}
private void configureCameraIdle() {....}

@Override
public void onMapReady(GoogleMap googleMap) {...}

protected void setStatusBarTranslucent(boolean makeTranslucent) {..}

private GoogleMap.OnMyLocationButtonClickListener onMyLocationButtonClickListener =
        new GoogleMap.OnMyLocationButtonClickListener() {
            @Override
            public boolean onMyLocationButtonClick() {
                mMap.setMinZoomPreference(15);
                return false;
            }
        };
private GoogleMap.OnMyLocationClickListener onMyLocationClickListener =
        new GoogleMap.OnMyLocationClickListener() {
            @Override
            public void onMyLocationClick(@NonNull Location location) {
                mMap.setMinZoomPreference(12);
                CircleOptions circleOptions = new CircleOptions();
                circleOptions.center(new LatLng(location.getLatitude(),
                location.getLongitude()));
                circleOptions.radius(200);
                circleOptions.fillColor(Color.RED);
                circleOptions.strokeWidth(6);
                mMap.addCircle(circleOptions);
            }
        };
}

依赖

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.google.android.gms:play-services:11.0.4'
compile 'com.google.android.gms:play-services-maps:11.0.4'

testCompile 'junit:junit:4.12'
}
android google-maps google-maps-markers
1个回答
0
投票

OnMyLocationClickListener API可从Play服务地图版本11.4.0获得

解决方案:将gradle文件中的Play Services Map依赖项版本更改为11.4.0或更高版本。最新版本是16.1.0

// Comment-out this line
// compile 'com.google.android.gms:play-services-maps:11.0.4'

// Add this line
implementation 'com.google.android.gms:play-services-maps:16.1.0'

选择你的依赖版本here

© www.soinside.com 2019 - 2024. All rights reserved.