如何在 JNI 中将 Java 长对象传递给 C

这适用于 Java 字符串:


public native Entity[] getALLEntityTYPES(String entityType);  

extern "C"

JNIEXPORT jobjectArray JNICALL

Java_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);

谢谢大家。



千万里不及你
浏览 157回答 3
3回答

Helenr

如果您只需要将 long 值传递给 jni,您可以使用 int64_t。不要忘记包含 stdint.h 以使这种类型可用。java本机签名需要使用long(不是Long对象)

元芳怎么了

最简单的解决方案可能是使用long值而不是Long对象:public native String getEntityTypeByEntityGUID(long entityGUID);并使用jlong类型声明您的本机函数(参见文档):extern "C"JNIEXPORT jobjectArray JNICALLJava_my_jni_project_getEntityTypeByEntityGUID(jlong entityGUID) {    // (...)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java