gpt4 book ai didi

java - 如何使用 jni 在 c 中替换 java 中的字符串数组的值?

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:12 26 4
gpt4 key购买 nike

这是我的 jni 函数,我必须在其中替换从 java 传递的数组中的值。

请告诉我怎么做。

JNIEXPORT void JNICALL Java_com_example_finals_Strpass_intake
(JNIEnv *env, jobject obj, jobjectArray dev){

jfieldID myNamesID; /* store the field ID */
int i=0;
jstring myStr;
char* myStr2;
char* myNames[] = {"Hello "};
LOGI("before class call ");
// Get a reference to obj’s class
jclass cls = (*env)->GetObjectClass(env,obj);
LOGI("before id call ");
myNamesID = (*env)->GetStaticFieldID(env,cls, "myDevNames", "[Ljava/lang/String;");
// Get the object field
LOGI("before dev call ");
dev =(*env)->GetStaticObjectField(env,cls,myNamesID);
LOGI("before for loop call ");
for (i=0; i<1; i++) {
LOGI("before myStr ");
myStr = (*env)->NewStringUTF(env,"gk");
(*env)->SetObjectArrayElement(env,dev,i,myStr);
}
(*env)->ReleaseCharArrayElements(env, dev, myStr, 0);
LOGI("after release");
}

最佳答案

JNIEXPORT void JNICALL Java_com_example_contchar23914_CharArrClass_intake (JNIEnv *env, jobject 作业, jobjectArray ptr){

jclass cls = (*env)->GetObjectClass(env,job);

myNamesID = (*env)->GetStaticFieldID(env,cls, "arr", "[Ljava/lang/String;");

ptr =(*env)->GetStaticObjectField(env,cls,myNamesID);

for (i=0; i < len; i++) {

stringg = (*env)->GetObjectArrayElement(env, ptr,i);

myStr = (*env)->NewStringUTF(env,myNames[i]);

(*env)->SetObjectArrayElement(env,ptr,i,myStr);
}

(*env)->ReleaseCharArrayElements(env, ptr, stringg, 0);

关于java - 如何使用 jni 在 c 中替换 java 中的字符串数组的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26356327/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com