gpt4 book ai didi

安卓 JNI 错误 : warning: initialization makes integer from pointer without a cast

转载 作者:行者123 更新时间:2023-11-30 04:32:45 25 4
gpt4 key购买 nike

我是 Android JNI 的新手。我将 JAVA 对象从我的 java 文件发送到下面给出的 C 代码。我的 jObject 信息包含 java 中的 char[] 值。实际上我认为我无法将 jObject 转换为 char,因此当我编译这段代码时出现错误:

警告:初始化从指针生成整数而不进行强制转换

我的 C 文件:

typedef struct {
unsigned char reg_chal[32];
unsigned char aid[32];
} reg_info_t;

JNIEXPORT jint JNICALL Java_com_marakana_NativeLib_reg(JNIEnv *env,jclass obj,jobject info ,jchar details,jchar reg_code)
{
reg_info_t regInfo;
jclass clazz;
jfieldID fid;
jmethodID mid;

jint status =0;

LOGD("NDK:LC: [%s]", "JNI Function call started");
LOGD("NDK:LC: [%s]", details);
LOGD("NDK:LC: [%c]", reg_code);

//GetInfo(entryInfo); // fills in the entryInfo

clazz = (*env)->GetObjectClass(env, info);
if (0 == clazz)
{
printf("GetObjectClass returned 0\n");
return(-1);
}

jchar reg_chal = (*env)->NewStringUTF(env,regInfo.reg_chal);
fid = (*env)->GetFieldID(env,clazz,"reg_chal","Ljava/lang/String;");
(*env)->SetObjectField(env,info,fid,reg_chal);
LOGD("NDK:LC: [%c]", reg_chal);

jchar aid = (*env)->NewStringUTF(env,regInfo.aid );
fid = (*env)->GetFieldID(env,clazz,"aid ","Ljava/lang/String;");
(*env)->SetCharField(env,info,fid,aid );
LOGD("NDK:LC: [%c]", aid);


//reg_step_1(info , details, reg_code);
//status = reg_step_1(info , details, reg_code);
return status;

}

请帮我解决这个转换错误?

最佳答案

NewStringUTF 不返回 jchar;它返回一个 jstring,它实际上只是 jobject 的同义词。

您应该将 jchar reg_chal 更改为 jstring reg_chal,并将 jchar aid 更改为 jstring aid

关于安卓 JNI 错误 : warning: initialization makes integer from pointer without a cast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402719/

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