当前位置: 首页 > 知识库问答 >
问题:

绑定Jar库

凤自珍
2023-03-14

我试图在MFA上绑定一个jar库(jCIFS),但遇到了一些错误,就像下面这样:

'jcifs.util.md4'不实现继承的抽象成员'java.security.messagedigestspi.engineDigest()

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

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

但是错误没有改变,a仍然不会得到这个错误的含义。

有人吗?

    public virtual byte[] EngineDigest ()
    {
        if (id_engineDigest == IntPtr.Zero)
            id_engineDigest = JNIEnv.GetMethodID (class_ref, "engineDigest", "()[B");

        if (GetType () == ThresholdType)
            return (byte[]) JNIEnv.GetArray (JNIEnv.CallObjectMethod  (Handle, id_engineDigest), JniHandleOwnership.TransferLocalRef, typeof (byte));
        else
            return (byte[]) JNIEnv.GetArray (JNIEnv.CallNonvirtualObjectMethod  (Handle, ThresholdClass, id_engineDigest), JniHandleOwnership.TransferLocalRef, typeof (byte));
    }
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>

谢了。

共有1个答案

方宏才
2023-03-14

它告诉您生成的类jcifs.util.md4没有实现继承的抽象方法。抽象方法是任何派生类都必须重写的方法。

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

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

有几种方法可以修复此错误。也许最简单的方法是向Java绑定库中添加一个类文件,并向其中添加以下代码。

namespace Jcifs.Util
{
    public partial class MD4
    {
        public override void EngineDigest()
        {

        }
    }
}
 类似资料:
  • 我创建了一个需要Java7的。jar。我有Java7(JDK和JRE),我可以双击运行。jar。但是,我想把它打包到一个应用程序中。 我所尝试的:使用苹果的Jar捆绑工具,我成功地创建了一个应用程序;然而,当我运行它时,它很快在码头上出现和消失。当我从终端运行内部文件时,我得到: 根据“UnsupportedClassVersionError unsupported Major.minor ver

  • 怎么啦? 谢谢

  • 我有一个Maven项目,它使用另一个项目作为jar库。我从jar中获得了@Inject'ed UserService接口,我得到: com.google.inject.ConfigurationException: Guice配置错误:1)没有绑定UserService的实现。 我曾尝试将UserService接口绑定到具体的类,但后来我得到了注入UserService的类的“没有实现…被绑定”异

  • 我创建了一个Java应用程序,它使用运行库执行Python脚本。我想知道是否有一种方法可以将Python.exe和必需的库包含在Jar文件中?

  • if绑定 if绑定应用在页面元素中,并通过表达式判断是否为元素添加子元素的绑定。if绑定在功能上非常像visible绑定,但在实现上却有很大的不同。visible绑定是为元素添加css样式来控制元素是否显示,if绑定是控制元素的字元素,如果表达式为true,则为元素添加子元素,否则清空子元素。 示例代码: //.W片段 <label> <input type="checkbox" bind-c

  • 我将IntelliJ IDEA作为jar文件构建在javaFX应用程序中。使用“Project Structure>>Artifacts>>>+JavaFX Application”,我可以构建。app、.dmg、.pkg、.exe,并包含JRE。但我需要构建相同的文件没有JRE捆绑。当然,我可以使用JAR,但我想做我自己的图标,也许安装程序。 我还尝试从jar创建.app文件夹,以手动执行它“j