Android 绑定Jar库

Android 绑定Jar库,android,xamarin.android,java-binding,Android,Xamarin.android,Java Binding,我试图在MFA上绑定一个jar库(jCIFS),但我遇到了一些错误,比如: <attr path="/api/package[@name='org.osmdroid.tileprovider']/class[@name='MapTileProviderBase.ScaleTileLooper']/method[@name='handleTile']" name="visibility">public</attr> 'Jcifs.Util.MD4'未实现继承的抽象成员'J

我试图在MFA上绑定一个jar库(jCIFS),但我遇到了一些错误,比如:

<attr path="/api/package[@name='org.osmdroid.tileprovider']/class[@name='MapTileProviderBase.ScaleTileLooper']/method[@name='handleTile']" name="visibility">public</attr>
'Jcifs.Util.MD4'未实现继承的抽象成员'Java.Security.MessageDigestSpi.EngineDigest()

经过一些研究,我发现了一些与此相关的主题,告诉我编辑元数据以更改类的权限,如下所示:

<attr path="/api/package[@name='java.security']/class[@name='MessageDigestSpi']/method[@name='engineDigest']" name="visibility">public</attr>
我在一个新文件中添加了这个:

partial class MD4
{
    public override byte[] EngineDigest()
    {
        return null;
    }
}
如果这样做,将返回此错误:

错误1类型“Jcifs.Util.MD4”已使用相同的参数类型定义了名为“EngineDigest”的成员

据我所知,EngineDigest方法已经存在,但该类需要实现它。我怎么做到的

完整错误:错误195“Jcifs.Util.MD4”未实现继承的抽象成员“Java.Security.MessageDigestSpi.EngineDigest()

编辑2:我尝试使用xamarin站点上的OsmDroidBinding示例来回答这个问题。我编辑了图元文件,直到出现类似错误。我发现的其中一行是:

<attr path="/api/package[@name='org.osmdroid.tileprovider']/class[@name='MapTileProviderBase.ScaleTileLooper']/method[@name='handleTile']" name="visibility">public</attr>
公共
我得到了这个错误:

然后我尝试将其添加到我的项目图元文件(如上所述),但错误仍然存在:

<attr path="/api/package[@name='java.security']/class[@name='MessageDigestSpi']/method[@name='engineDigest']" name="visibility">public</attr>
公共

谢谢。

它告诉您生成的类Jcifs.Util.MD4没有实现继承的抽象方法。抽象方法是必须由任何派生类重写的方法

下面的代码将基类方法的可见性更改为public,这显然无法解决问题

<attr path="/api/package[@name='java.security']/class[@name='MessageDigestSpi']/method[@name='engineDigest']" name="visibility">public</attr>
注意您需要将
EngineDigest()
的返回类型更改为基类中为抽象方法定义的返回类型。您的问题中没有提到返回类型,因此我将其更改为
void

公共重写字节[]EngineDigest()

受保护覆盖字节[]EngineDigest()

我缺乏一些C#技能,所以我哪儿也去不了。如果我添加此代码VS返回我“…已使用相同的参数类型定义了名为EngineDigest的成员。有关详细信息,我将编辑此问题
namespace Jcifs.Util
{
    public partial class MD4
    {
        public override void EngineDigest()
        {

        }
    }
}