JniExport失败,并声明了字符串

时间:2019-09-26 13:16:08

标签: java c++ java-native-interface

为什么当我要在Jniexport函数中使用字符串时,dll出现故障?

如果像下面的代码中那样注释掉该字符串的用法,则一切正常,并且在Java中调用该函数会得到“我的字符串”。

但是,只要我在“ std :: string test;”中加入该行;我可以构建dll,但是在Java中,调用System.loadLibrary(“ jniBridge”)后会收到消息

  

java.lang.UnsatisfiedLinkError:\ path \ to \ dll \ jniBridge.dll:动态链接库(DLL)初始化例程失败

jniBridge.cpp:

#pragma once
#include "jni.h"
#include "jniBridge.h"

#include "string"

/*
 * Class:     jniBridge
 * Method:    instantiateAI
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_jniBridge_instantiateAI
  (JNIEnv *env, jclass clazz) {
    // std::string test; // fails with this line.
    return env->NewStringUTF("My String");
  }

0 个答案:

没有答案