我的代码可以编译,但当我调用C++子例程时,应用程序会因一个不满意的链接错误而终止。
在CMakeLists中。txt文件:
add_library(
native-lib
SHARED
src/main/cpp/crlTCheckkey.cpp)
在表1中。java:
package com.labyrinthsys.crltext;
String statusString;
String keyPath;
statusString = crlTCheckkey(keyPath);
...
public native String crlTCheckkey(String keyPath);
在crlTCheckkey。cpp:
#include <jni.h>
#include <string>
using namespace std;
extern "C" JNIEXPORT jstring
JNICALL
Java_com_labyrinthsys_crltext_Tab1_crlTCheckkey(
JNIEnv *env,
jobject,
jstring keyFilePath) {
我得到的错误是:
java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String com.labyrinthsys.crltext.Tab1.crlTCheckkey(java.lang.String) (tried Java_com_labyrinthsys_crltext_Tab1_crlTCheckkey and Java_com_labyrinthsys_crltext_Tab1_crlTCheckkey__Ljava_lang_String_2)
at com.labyrinthsys.crltext.Tab1.crlTCheckkey(Native Method)
at com.labyrinthsys.crltext.Tab1.onClick(Tab1.java:118)
我在当地四处打听,运气不好。我错过了什么?谢谢