我有以下表格进行方法映射: -
static jint sum_JNI(JNIEnv * env, jclass clazz, jint a, jint b){
return a + b;
}
static jint mul_JNI(JNIEnv * env, jclass clazz, jint a, jint b){
return a * b;
}
static jstring get_string(){
return (jstring)"string";
}
static JNINativeMethod method_table[] = {
{"sum_JNI", "(II)I", (void*) sum_JNI},
{"mul_JNI", "(II)I", (void*) mul_JNI},
// {"get_string","()C", (void*) get_string}
};
我不知道这个表中jstring / string的类型是什么。试过上面的代码。但它不起作用。怎么做?
答案 0 :(得分:0)
jstring
是Java语言对象。您不能简单地使用jni.h
中的定义将C字符串文字转换为一个。
使用NewStringUTF
功能从"修改后的"创建jstring
。 UTF-8字符串文字。方法声明的对象类型是Ljava/lang/String;
- 没有单字符值。
另请参阅JNI Tips和interface spec。