【问题标题】:Does not implement interface member/does not implement abstract member不实现接口成员/不实现抽象成员
【发布时间】:2017-10-27 20:54:40
【问题描述】:

我正在尝试通过 Visual Studio 中的 android 绑定库将 clover .aar 文件绑定到 xamarin。我把它归结为两个错误:

'Decimal' 没有实现接口成员'iComparable.ComapreTo(Object)'

'AuthTask' 没有实现继承的抽象成员'AsyncTask.DoInBackground(params Object[])'

这里是相关文件。

public partial class Decimal : global::Java.Lang.Number, global::Java.Lang.IComparable {

public partial class AuthTask : global::Android.OS.AsyncTask {

我尝试将它添加到我的 metadata.xml 中,但没有任何变化。

 <remove-node path="/api/package[@name='com.clover.core.internal.calc']/class[@name='Decimal']/implements[@name='Java.Lang.IComparable']" />

对于 AuthTask,我迷路了,因为我需要实现和 AuthTask 类。我只是想删除 DoInBackground 方法,但没有路径。

更新: 我能够将此代码添加到我的 Metadata.xml

<add-node path="/api/package[@name='com.clover.core.internal.calc']/class[@name='Decimal']">
<method abstract="false" deprecated="not deprecated" final="false" name="CompareTo" native="false" return="int" static="false" synchronized="false" visibility="public">
<parameter name="CreatedByDaniel" type="Java.Lang.Object">
</parameter>
</method>
</add-node>

  <add-node path="/api/package[@name='com.clover.sdk.util']/class[@name='AuthTask']">
<method abstract="false" deprecated="not deprecated" final="false" name="DoInBackground" native="false" return="Java.Lang.Object" static="false" synchronized="false" visibility="public">
<parameter name="CreatedByDaniel" type="Java.Lang.Object[]">
</parameter>

</method>
</add-node>

这解决了 Decimal 错误,但 Auth 任务错误仍然存​​在。如果我将可见性更改为受保护的身份验证错误就会消失,但会出现 160 个错误:

当前上下文中不存在名称“[方法名称]”

我不确定这些课程是否需要,但它们似乎很重要。我尝试删除它们,但它不起作用。

有什么想法吗?

【问题讨论】:

  • 你的Decimal 类是否真的实现了CompareTo(Object)?你的AuthTask 类是否真的实现了DoInBackground(Object[])
  • 十进制类甚至根本不需要IComparable的实现。这就是为什么我试图完全删除它。然而 AuthTask 确实需要 AsyncTask,它只是没有实现 DoInBackground(Object[])。因此,要回答您的问题,他们都没有实施它。 @RufusL
  • 那不是回答你的问题吗?你有两个错误告诉你你有两个类 say 他们实现了一个接口,但它们实际上并没有实现各个接口所需的所有方法。我不明白你在问什么?
  • 我正在尝试将此 .aar 文件绑定到 Xamarin 的 C# 中。我不能只编辑 C# 代码,我必须在 metadata.xml 中添加一行来执行此操作。我添加到此文件的代码不起作用。我在问为什么它不起作用以及我应该放什么。感谢您的回复。 @RufusL
  • 好的。我不知道 .aar 文件或 xamarin,所以我会把它留给其他人。但听起来你只需要在类中添加所需的方法签名,即使方法中唯一的代码是抛出一个NotImplementedException

标签: c# android visual-studio xamarin


【解决方案1】:

我发布的更新工作和 160 错误需要通过添加类来编辑。只用了两行就解决了所有问题

【讨论】:

    猜你喜欢
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多