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

Xamarin Android绑定库-在DigitalPersona UareU JAR中不实现继承的抽象成员

周龙光
2023-03-14

我正在尝试Android绑定库,我遇到了下面的错误-

“ReaderCollectionImpl”不实现继承的抽象成员“AbstractList.get(int)”

下面的函数是在我的类中生成的

public virtual unsafe global::Com.Digitalpersona.Uareu.IReader Get (int n)
{
}
public override unsafe global::Com.Digitalpersona.Uareu.IReader Get (int n)
{
}
public class ReaderCollectionImpl extends AbstractList<Reader> implements ReaderCollection
{
}

在用C#转换时,它变成了-

public partial class ReaderCollectionImpl : global::Java.Util.AbstractList 
{
}

我的猜测是java.util.AbstractList没有泛型,这可能是这里的问题?

共有1个答案

陆文斌
2023-03-14

在反编译dpuareu.jar并查看原始代码之后,我通过在metadata.xml中添加这些行,成功地编译了它。

 <attr path="/api/package[@name='com.digitalpersona.uareu.dpfpdd']/class[@name='ReaderCollectionImpl']/ method[@name='get']" name="managedReturn">Java.Lang.Object</attr>
 <attr path="/api/package[@name='com.digitalpersona.uareu.dpfpdd']/class[@name='ReaderCollectionImpl.ReaderImpl']" name="visibility">public</attr>

下一步是将所有的“So”添加到项目中,右键单击它们并选择“Build Action”到“EmbeddedReferenceJar”。

通过这些设置,我可以将DLL的引用添加到我的Xamarin.Android项目中,并无误地调用这一行。我甚至可以调用下面的GetName(),并获取连接的扫描仪的名称。这应作为进一步发展的起点。

    ReaderCollectionImpl readerCollection;

    public ReaderCollectionImpl GetReaders()
    {
        try
        {
            readerCollection = (ReaderCollectionImpl)UareUGlobal.GetReaderCollection(Android.App.Application.Context);
            readerCollection.GetReaders();                

            return readerCollection;
        }
        catch(UareUException ex)
        {
            throw ex;
        }
        catch(Exception ex)
        {
            throw ex;
        }
    }

    public int GetSize()
    {
        return readerCollection.Size();
    }

    public string GetName()
    {
        return (readerCollection.Get(0) as ReaderCollectionImpl.ReaderImpl).Description.Name;
    }
 类似资料:
  • 使用反编译器,我检查了的内容,发现了以下内容: 为什么我甚至需要实现?生成的C#代码实现了,以匹配Java代码中的内容...我对Java了解不多,所以可能遗漏了什么...知道如何修复这个问题吗?

  • 问题是: 我有一个叫做Schema的基类,它是抽象的,它是一个未生成的类。我有两个从Schema继承生成的JAXB类:FixedWidthSchema和DelimitedSchema。 我使用外部绑定(xjb)文件来指定XSD和Java类之间的映射。 在基类模式中,我定义了几个方法: 公共架构静态创建(Model m),它从提供的模型创建架构。 公共抽象Writer marshal(),它将当前架

  • 我有2个抽象的类操纵泛型和一个工厂与泛型。父级独立于trips对象和因式分解代码。儿子只基于trips。 Eclipse上的AbstractTripBasedPurchaseExtractor第9行出现错误:Bound mismatch:类型TRIP_PURCHASE不是bounded参数的有效替代品 类型的 此处:extends AbstractPurchaseExtractor“ 在son类上

  • 问题内容: 我有以下界面: 我在下面有抽象类(没有提到方法插入): 我有具体的课程: 最后,SpecificEntryBean定义为: 我有以下错误: 类型SpecificEntry必须实现继承的抽象方法SingleRecordInterface.insert(AbstractEntryBean) 考虑到SpecificEntryBean扩展了AbstractEntryBean,所以我不明白此错误

  • 继承一个可以实现的普通超类有什么不同吗? atm我有一个名为的抽象类,我有/扩展这个。 abstractcar中的一个字段设置为"私有int容量" 但是在子类“小型汽车”中,当我输入“容量”作为构造函数中使用的变量时,它说“容量在抽象汽车中有私有访问” 我想: > 子类继承超类的所有字段和方法? 我现在该怎么进行?

  • 我有一个抽象类,这个类是在她的子类中扩展的: < li >我在这个抽象类上实现了一个方法,并抽象了另一个方法 < li >实现的方法是每个子类对象都必须访问的通用方法。所以我决定在抽象类上实现它,避免在每个子类上实现相同的方法。 小例子: 我想听听你对这种实施方式的看法, 问候。