1
我是新的Android JNI。我将Java文件中的JAVA对象发送给下面给出的C代码。其实我认为我无法将jObject转换为字符,因此当我编译此代码时,我得到以下错误:Android的JNI错误:警告:初始化从指针没有投的指针整数
警告:初始化会使指针中的整数无法投射
我的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;
}
请帮我如何解决转换的这个错误?
@ Struart Cook:谢谢你的帮忙。它现在正在构建这个lib。但是现在我得到了一种新的错误:I/DEBUG(31):*** *** *** *** *** *** *** *** *** * ** *** *** *** *** *** I/DEBUG(31):构建指纹:'generic/sdk/generic /:2.2/FRF91/43546:eng/test-keys' (31):pid:692,tid:692 >>> com.marakana <<< I/DEBUG(31):信号11(SIGSEGV),故障地址00000064任何想法如何解决信号11错误在ndk?感谢您的帮助 –