Android 绑定Jar库
我试图在MFA上绑定一个jar库(jCIFS),但我遇到了一些错误,比如: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
<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()
{
}
}
}