这适用于 Java 字符串:public native Entity[] getALLEntityTYPES(String entityType); extern "C"JNIEXPORT jobjectArray JNICALLJava_my_jni_project_getALLEntityTYPE(JNIEnv *env, jobject instance, jstring entityType_) { const char *entityType = env->GetStringUTFChars(entityType_, 0);如何在 JNI 中将 Java 长对象传递给 C:public native String getEntityTypeByEntityGUID(Long entityGUID);谢谢大家。
3 回答
Helenr
TA贡献1780条经验 获得超4个赞
如果您只需要将 long 值传递给 jni,您可以使用 int64_t。不要忘记包含 stdint.h 以使这种类型可用。java本机签名需要使用long(不是Long对象)
元芳怎么了
TA贡献1798条经验 获得超7个赞
最简单的解决方案可能是使用long值而不是Long对象:
public native String getEntityTypeByEntityGUID(long entityGUID);
并使用jlong类型声明您的本机函数(参见文档):
extern "C"
JNIEXPORT jobjectArray JNICALL
Java_my_jni_project_getEntityTypeByEntityGUID(jlong entityGUID) {
// (...)
添加回答
举报
0/150
提交
取消