2

我正在尝试在我的 Xamarin 项目中使用适用于 Android 的 YandexMapKit。

我下载了最新版本的 YandexMapKit ( yandexmapkit-2.5.4.aar ),创建了 Xamarin.Android 绑定库并将其包含到我的项目中。但是在构建它之后我遇到了很多错误。我找到了这个项目:https ://github.com/pocheshire/Xamarin.YandexMaps.Android并从中使用了变换和添加。之后只剩下一个构建错误:
Error CS0542 'OverlayItem': member names cannot be the same as their enclosing type

在生成的源中,此块包含错误:

    public event EventHandler<global::RU.Yandex.Yandexmapkit.Overlay.OverlayItemEventArgs> OverlayItem {
        add {
            global::Java.Interop.EventHelper.AddEventHandler<global::RU.Yandex.Yandexmapkit.Overlay.IOnOverlayItemListener, global::RU.Yandex.Yandexmapkit.Overlay.IOnOverlayItemListenerImplementor>(
                    ref weak_implementor___SetOverlayItemListener,
                    __CreateIOnOverlayItemListenerImplementor,
                    __v => OverlayItemListener = __v,
                    __h => __h.Handler += value);
        }
        remove {
            global::Java.Interop.EventHelper.RemoveEventHandler<global::RU.Yandex.Yandexmapkit.Overlay.IOnOverlayItemListener, global::RU.Yandex.Yandexmapkit.Overlay.IOnOverlayItemListenerImplementor>(
                    ref weak_implementor___SetOverlayItemListener,
                    global::RU.Yandex.Yandexmapkit.Overlay.IOnOverlayItemListenerImplementor.__IsEmpty,
                    __v => OverlayItemListener = null,
                    __h => __h.Handler -= value);
        }
    }

    WeakReference weak_implementor___SetOverlayItemListener;

    global::RU.Yandex.Yandexmapkit.Overlay.IOnOverlayItemListenerImplementor __CreateIOnOverlayItemListenerImplementor ()
    {
        return new global::RU.Yandex.Yandexmapkit.Overlay.IOnOverlayItemListenerImplementor (this);
    }

它是从这个 Java 块生成的:

public interface OnOverlayItemListener
{
    void onClick(OverlayItem paramOverlayItem);
}
...

private OnOverlayItemListener m;
...

public OnOverlayItemListener getOverlayItemListener()
{
    return this.m;
}

public void setOverlayItemListener(OnOverlayItemListener paramOnOverlayItemListener)
{
    this.m = paramOnOverlayItemListener;
}

如何在 Xamarin 项目中正确实现此功能?

谢谢。

4

1 回答 1

1

只需将 OverlayItem 重命名为 OnOverlayItem 和 Build,而不是 Rebuild

于 2018-01-25T18:59:57.860 回答