错误 CS0115:在 Xamarin 绑定库项目中找不到合适的方法来覆盖
Error CS0115: no suitable method found to override in a Xamarin bindings library project
我创建了一个 绑定库项目 以便能够 运行 一个 Android .aar 文件。
我遇到的几个错误之一是:
Error CS0115 'Call.OnWarning(IDictionary)': no suitable method found to override TwilioBindings C:\...\TwilioBindings\obj\Debug\generated\src\Com.Twilio.Voice.Call.cs;
为了解决这个问题,我验证了 api.xml 并发现方法 onWarning 有一个类型为 java.util.HashMap:
<method abstract="false" deprecated="not deprecated" final="false" name="onWarning" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="p0" type="java.util.HashMap">
</parameter>
</method>
classCall 正在扩展 InternalCall 实现 RTCMonitorCommand.Listener 在我检查了 api.xml 文件后,我注意到方法 onWarning 具有以下定义:
内部通话:
<method abstract="false" deprecated="not deprecated" final="false" name="onWarning" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="warningDetails" type="java.util.HashMap<java.lang.String, java.lang.Object>">
</parameter>
</method>
RTCMonitorCommand.Listener:
<method abstract="true" deprecated="not deprecated" final="false" name="onWarning" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="p0" type="java.util.HashMap<java.lang.String, java.lang.Object>">
</parameter>
</method>
所以我得出结论,只有 class Call 具有不同的参数类型。
因此我在Metadata.xml中写了下面一行来改变方法onWarning在[=77中的参数类型=] 呼叫:
<attr path="/api/package[@name='com.twilio.voice']/class[@name='Call']/method[@name='onWarning' and count(parameter)=1 and parameter[1][@type='java.util.HashMap']]/parameter[1]" name="type">java.util.HashMap<java.lang.String, java.lang.Object></attr>
错误消失了,但我在使用这个绑定项目时遇到了一些问题,这是 Metadata.xml 中我不确定是否正确的那一行.
有谁知道我的方法是否正确?
任何帮助都将不胜感激,
谢谢。
从这个绑定库调用方法时我遇到了问题,我认为这是由一些绑定错误引起的,但是后来,在日志中搜索后我得出的结论是问题不是这个库能够找到依赖关系。绑定项目正在引用依赖项目,但不知何故引用不起作用。所以我更改了引用,而不是引用包,而是引用了包 dll,现在它可以正常运行了。
我创建了一个 绑定库项目 以便能够 运行 一个 Android .aar 文件。 我遇到的几个错误之一是:
Error CS0115 'Call.OnWarning(IDictionary)': no suitable method found to override TwilioBindings C:\...\TwilioBindings\obj\Debug\generated\src\Com.Twilio.Voice.Call.cs;
为了解决这个问题,我验证了 api.xml 并发现方法 onWarning 有一个类型为 java.util.HashMap:
<method abstract="false" deprecated="not deprecated" final="false" name="onWarning" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="p0" type="java.util.HashMap">
</parameter>
</method>
classCall 正在扩展 InternalCall 实现 RTCMonitorCommand.Listener 在我检查了 api.xml 文件后,我注意到方法 onWarning 具有以下定义:
内部通话:
<method abstract="false" deprecated="not deprecated" final="false" name="onWarning" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="warningDetails" type="java.util.HashMap<java.lang.String, java.lang.Object>">
</parameter>
</method>
RTCMonitorCommand.Listener:
<method abstract="true" deprecated="not deprecated" final="false" name="onWarning" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="p0" type="java.util.HashMap<java.lang.String, java.lang.Object>">
</parameter>
</method>
所以我得出结论,只有 class Call 具有不同的参数类型。
因此我在Metadata.xml中写了下面一行来改变方法onWarning在[=77中的参数类型=] 呼叫:
<attr path="/api/package[@name='com.twilio.voice']/class[@name='Call']/method[@name='onWarning' and count(parameter)=1 and parameter[1][@type='java.util.HashMap']]/parameter[1]" name="type">java.util.HashMap<java.lang.String, java.lang.Object></attr>
错误消失了,但我在使用这个绑定项目时遇到了一些问题,这是 Metadata.xml 中我不确定是否正确的那一行.
有谁知道我的方法是否正确?
任何帮助都将不胜感激,
谢谢。
从这个绑定库调用方法时我遇到了问题,我认为这是由一些绑定错误引起的,但是后来,在日志中搜索后我得出的结论是问题不是这个库能够找到依赖关系。绑定项目正在引用依赖项目,但不知何故引用不起作用。所以我更改了引用,而不是引用包,而是引用了包 dll,现在它可以正常运行了。