没有实现接口成员'IComparable.CompareTo(Object)'

ana*_*and 4 android xamarin.android xamarin aar

我有一个android的.aar文件.我试图在我的xamarin.android应用程序中使用它.我按照链接中给出的步骤进行了操作https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-an-aar/

但是当我尝试构建我的库时,我遇到了错误

"没有实现接口成员'IComparable.CompareTo(Object)'"

我找到了一些解决方案,其中提到在metadata.xml中我们需要添加一些属性.所以我在那里添加了以下行

path="/api/package[@name='com.logicjunction.ljindoorandroidsdk']/class[@name='FloorPlanBeaconsMapping']/implements[@name='java.lang.Comparable']" 
Run Code Online (Sandbox Code Playgroud)

名称= "类型"> java.lang.Comparable的>

但仍然得到同样的错误.我怎么解决这个问题?

Pol*_*riz 8

在没有接口实现的情况下构建库时获取错误IComparable.CompareTo:

错误'

要解决此问题,需要在" Additions "文件夹中创建需要接口成员实现"IComparable.CompareTo(Object)"的库类的部分类,如下所示:

具有接口IComparable的部分类

命名空间应该与绑定库相同,在这种情况下,它是:" Hirondelle.Date4j ".

using Java.Lang;
namespace Hirondelle.Date4j
{
    public partial class DateTime : Object, IComparable
    {
        int IComparable.CompareTo(Object obj)
        {
            return CompareTo((DateTime)obj);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后应该成功构建库.


Dam*_*iii 6

所以我遇到了同样的问题,我可以通过帮助编译器在Metada.xml(Transforms文件夹)中添加这些行来解决它:

<add-node path="/api/package[@name='<JAVA_PACKAGE_NAME>']/class[@name='<CLASS_NAME>']">
    <method name="compareTo" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public">
        <parameter name="p0" type="java.lang.Object" />
    </method>
</add-node>
Run Code Online (Sandbox Code Playgroud)