这适用于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);
如何将Java Long Object传递给JNI中的C:
public native String getEntityTypeByEntityGUID(Long entityGUID);
提前谢谢大家。
答案 0 :(得分:1)
如果您可以传递长整型而不是长整型,请在此处查看传递原始类型的完整示例
http://jnicookbook.owsiak.org/recipe-No-011/
如果您想传递Long(作为对象),请在这里看看
http://jnicookbook.owsiak.org/recipe-No-020/
其中显示了从Object获取值的示例代码。当然,根据您的情况,您需要访问Long类的字段。
答案 1 :(得分:0)
如果只需要将long值传递给jni,则可以使用int64_t。不要忘记包含stdint.h来使这种类型可用。 Java本机签名将需要使用long(而不是Long对象)
答案 2 :(得分:0)
最简单的解决方案可能是使用long
值而不是Long
对象:
public native String getEntityTypeByEntityGUID(long entityGUID);
并使用jlong
类型声明您的本机函数(参见docs):
extern "C"
JNIEXPORT jobjectArray JNICALL
Java_my_jni_project_getEntityTypeByEntityGUID(jlong entityGUID) {
// (...)