首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SaxonC EE 11.2的"SaxonProcessor::newXslt30Processor()“返回一个Debug断言失败:”向量下标超出范围“

SaxonC EE 11.2的"SaxonProcessor::newXslt30Processor()“返回一个Debug断言失败:”向量下标超出范围“
EN

Stack Overflow用户
提问于 2022-03-07 06:25:48
回答 1查看 51关注 0票数 0

我正在使用Saxon中C API中的cpp和hpp文件,我只是编译并运行了以下几行:

代码语言:javascript
复制
SaxonProcessor* processor = new SaxonProcessor(false);
Xslt30Processor* xslt = processor->newXslt30Processor();

它显示了创建XSLT30Processor时的错误。我也不会用执照的。

我已经调试过它,在它调用JNI方法之前,我所能达到的最远是Xslt30Processor.cpp的第36行:

代码语言:javascript
复制
Xslt30Processor::Xslt30Processor(SaxonProcessor * p, std::string curr) {

    proc = p;
    jitCompilation = false;
    exception = nullptr;
    /*
     * Look for class.
     */
    cppClass = lookForClass(SaxonProcessor::sxn_environ->env,    \\ It fails here
            "net/sf/saxon/option/cpp/Xslt30Processor");

    jobject tempcppXT = createSaxonProcessor2(SaxonProcessor::sxn_environ->env, cppClass,
            "(Lnet/sf/saxon/s9api/Processor;)V", proc->proc);
    if(tempcppXT) {
        cppXT = SaxonProcessor::sxn_environ->env->NewGlobalRef(tempcppXT);
        SaxonProcessor::sxn_environ->env->DeleteLocalRef(tempcppXT);

    } else {
        createException("Error: Failed to create the Xslt30Processor internal object");

    }

#ifdef DEBUG
    jmethodID debugMID = SaxonProcessor::sxn_environ->env->GetStaticMethodID(cppClass, "setDebugMode", "(Z)V");
    SaxonProcessor::sxn_environ->env->CallStaticVoidMethod(cppClass, debugMID, (jboolean)true);
    
#endif

    if(cppXT == nullptr) {
        createException();
    }

    if(!(proc->cwd.empty()) && curr.empty()){
        cwdXT = proc->cwd;
    } else if(!curr.empty()){
        cwdXT = curr;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-07 09:35:56

我想出来了,我的cpp文件不包括按写顺序写的文件。我无法想象

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

https://stackoverflow.com/questions/71377153

复制
相关文章

相似问题

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