我正在尝试在我的Xamarin项目中使用YandexMapKit for Android。
我下载了最新版本的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 项目中正确实现此功能?
谢谢。
只需将 OverlayItem 重命名为 OnOverlayItem 并构建,而不是重新构建