Я новичок в Android JNI.Я отправляю объект JAVA из моего файла Java в код C, указанный ниже.Моя информация о jObject содержит значения char [] в java. На самом деле я думаю, что не могу преобразовать jObject в char, и поэтому, когда я компилирую этот код, я получаю сообщение об ошибке:
предупреждение: инициализация делает целое число из указателя безcast
My C File:
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;
}
Пожалуйста, помогите мне, как исправить эту ошибку конвертации?