【问题标题】:Error CS0115: no suitable method found to override in a Xamarin bindings library project错误 CS0115:在 Xamarin 绑定库项目中找不到合适的方法来覆盖
【发布时间】:2018-09-29 19:04:51
【问题描述】:

我创建了一个绑定库项目,以便能够运行 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>

Call 类正在扩展实现 RTCMonitorCommand.ListenerInternalCall,在我检查了 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&lt;java.lang.String, java.lang.Object&gt;">
    </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&lt;java.lang.String, java.lang.Object&gt;">
    </parameter>
</method>

所以我得出结论,只有类 Call 有不同的参数类型。

因此我在 Metadata.xml 中编写了以下行来更改 Call 类中方法 onWarning 的参数类型:

<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&lt;java.lang.String, java.lang.Object&gt;</attr>

错误消失了,但我在使用此绑定项目时遇到了一些问题,这是 Metadata.xml 中的行,我不确定这是对的。

有人知道我的方法是否正确吗?

感谢任何帮助,

谢谢。

【问题讨论】:

  • 你遇到了什么问题?

标签: xamarin xamarin.android twilio xamarin-binding twilio-programmable-voice


【解决方案1】:

我在调用此绑定库中的方法时遇到问题,我认为这是由某些绑定错误引起的,但是在搜索日志后,我得出的结论是问题在于该库无法运行找到一个依赖。绑定项目正在引用依赖项项目,但不知何故,该引用不起作用。所以我更改了引用,而不是引用包,我引用了包 dll,现在它可以正常运行了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-07
    • 2020-07-01
    相关资源
    最近更新 更多