为什么当我要在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");
}