Dll Xamarin Android库绑定,删除覆盖修改器

Dll Xamarin Android库绑定,删除覆盖修改器,dll,xamarin,binding,xamarin.android,Dll,Xamarin,Binding,Xamarin.android,我试图在Xamarin Android绑定项目中绑定Android PDF库,但属性中添加了一个不必要的“覆盖”修饰符: public partial class ReaderView : global::Android.Widget.AdapterView, [...] { // ... public override unsafe global::Android.Widget.IAdapter Adapter { // Metadata.xml XPath

我试图在Xamarin Android绑定项目中绑定Android PDF库,但属性中添加了一个不必要的“覆盖”修饰符:

public partial class ReaderView : global::Android.Widget.AdapterView, [...] {
    // ...

    public override unsafe global::Android.Widget.IAdapter Adapter {
        // Metadata.xml XPath method reference: path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='getAdapter' and count(parameter)=0]"
        [Register ("getAdapter", "()Landroid/widget/Adapter;", "GetGetAdapterHandler")]
        get {
            // ...
        }
        // Metadata.xml XPath method reference: path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='setAdapter' and count(parameter)=1 and parameter[1][@type='android.widget.Adapter']]"
        [Register ("setAdapter", "(Landroid/widget/Adapter;)V", "GetSetAdapter_Landroid_widget_Adapter_Handler")]
        set {
            // ...
        }
    }

    // ...
}
我没有在中找到任何关于添加/删除诸如“覆盖”或“虚拟”之类的修改器的内容

我试过了,但没有成功:

<attr path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='getAdapter' and count(parameter)=0]" name="override">false</attr>
<attr path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='setAdapter' and count(parameter)=1 and parameter[1][@type='android.widget.Adapter']]" name="override">false</attr>
下面是一个例子


编辑2:Xamarin绑定项目也在GitHub上,您会发现Jar库:

解决方案是在
Metadata.xml中修改方法的
可见性

<attr 
   path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='getAdapter']"
   name="visibility">public</attr>
公共

这将有效地从方法签名中删除
override
关键字。

为什么要删除此修饰符?
.jar/.aar
是否专门为该项设置了一个
@override
?你能把.jar/.aar上传到你的问题上吗?考虑到它是
AdapterView
Adapter
的实现,我会这么认为:在原生Java-/@JonDouglas中,我添加了到GitHub repos的链接。我明天会试试看是否需要
@覆盖
,谢谢。解决方案是什么?当绑定从Android.Widget.AdapterView继承的库并重写get和set适配器方法时,我们也会遇到同样的问题。@JonDouglas这里的主要问题是Android.Widget.AdapterView的Xamarin非通用版本没有适配器属性或getAdapter/setAdapter方法,但公开了RawAdapter属性()。要访问适配器属性,它应该使用generic version()。建议的解决方法对我有效,但在较新的Xamarin版本中可能不相关。