为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

千万里不及你 2021-06-07 17:22:37
这适用于 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对象)


查看完整回答
反对 回复 2021-06-17
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

最简单的解决方案可能是使用long值而不是Long对象:


public native String getEntityTypeByEntityGUID(long entityGUID);

并使用jlong类型声明您的本机函数(参见文档):


extern "C"

JNIEXPORT jobjectArray JNICALL

Java_my_jni_project_getEntityTypeByEntityGUID(jlong entityGUID) {

    // (...)


查看完整回答
反对 回复 2021-06-17
  • 3 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信