【发布时间】: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