Dll Xamarin Android库绑定,删除覆盖修改器
我试图在Xamarin Android绑定项目中绑定Android PDF库,但属性中添加了一个不必要的“覆盖”修饰符: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
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版本中可能不相关。