首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Delphi桥对DocumentBuilderFactory进行故障分割

利用Delphi桥对DocumentBuilderFactory进行故障分割
EN

Stack Overflow用户
提问于 2014-07-10 13:15:20
回答 1查看 151关注 0票数 1

我试图通过JNI/Java在Delphi代码中使用javax.xml.parsers.DocumentBuilderFactory。

这是我为工厂构建的接口:

注意:我知道类中的实际创建方法是newInstance(),但是当我尝试使用newInstance而不是init时,我也会得到相同的分段错误。

代码语言:javascript
复制
{DocumentBuilderFactory}
JDocumentBuilderFactoryClass = interface(JObjectClass)
['{8475A5A9-F10A-4DDA-9D50-C714C015C81C}']
    function init: JDocumentBuilderFactory; cdecl; overload;
end;

[JavaSignature('javax/xml/parsers/DocumentBuilderFactory')]
JDocumentBuilderFactory = interface(JObject)
['{7F4F2927-25EB-4B03-9373-A43B0757CD06}']
    function newDocumentBuilder: JDocumentBuilder; cdecl;
end;

TJDocumentBuilderFactory = class
     (TJavaGenericImport<JDocumentBuilderFactoryClass, JDocumentBuilderFactory>)
end;

这是调用接口/对象的代码:

tmpObject: JObject;

代码语言:javascript
复制
// init an object, i have already tried just calling create
tmpObject := TJDocumentBuilderFactory.JavaClass.init;
//then wrap it into the appropriate object
if Assigned(tmpObject) then
    builderFactory := TJDocumentBuilderFactory.Wrap
        ((tmpObject as IlocalObject).GetObjectID);

据我所知,我不必声明接口中java类的每个方法,我使用其他类时没有问题。

通常,java桥引发的分段错误表明加载接口或文件存在问题。例如,如果java签名中的java类的路径是错误的,那么这也会导致分段错误。然而,这里的情况并非如此,因为我可以确认路径是正确的。我环顾四周,但找不到任何关于如何解决这个问题的建议。有什么想法吗?

打招呼,

杰森

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-10 16:24:21

分割错误是可以理解的,因为不可能创建抽象类的实例。

Android 文档说DocumentBuilderFactory是一个抽象类。该类提供了一个静态方法newDocumentBuilder(),它返回一个DocumentBuilder的新实例。

若要创建工厂的实例,请使用DocumentBuilderFactory.newInstance

由于我没有使用Delphi的移动版,所以我无法说明如何在JNI适配器上使用静态工厂方法。如果它没有文档化,也许它是值得自己的堆栈溢出问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24677545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档