__android_log_print打印信息乱码(非中文)

littleubuntu 2012-03-01 04:12:36
java代码:

public class SipMessage {

public String serverIp;
public String username;
public String password;
}

在activity上有三个输入框分别对应上边三个属性,输入(英文)完成后,点击一个按钮,触发native方法register()


JNIEXPORT void JNICALL Java_com_sxsexe_study_SipUIActivity_register
(JNIEnv *env, jobject obj, jobject message)
{
//printf("!!!!!!!!!!!!!!!!!!! -----------------------!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
LOGD("Register method in C has been invoked-----");

jclass clazz = (*env)->GetObjectClass(env, message);
jfieldID field_server_ip = (*env)->GetFieldID(env, clazz, "serverIp", "Ljava/lang/String;");
jfieldID field_username = (*env)->GetFieldID(env, clazz, "username", "Ljava/lang/String;");
jfieldID field_password = (*env)->GetFieldID(env, clazz, "password", "Ljava/lang/String;");

jstring str_server_ip = (*env)->GetObjectField(env, message, field_server_ip);
jstring str_username = (*env)->GetObjectField(env, message, field_username);
jstring str_password = (*env)->GetObjectField(env, message, field_password);

__android_log_print(ANDROID_LOG_DEBUG,"sever ip","serveri ip is %s",str_server_ip);
__android_log_print(ANDROID_LOG_DEBUG,"username","username is %s",str_username);
__android_log_print(ANDROID_LOG_DEBUG,"password","password is %s",str_password);

}

结果输出显示成小方块了,如下:
03-01 08:03:58.502: D/sever ip(925): serveri ip is ??
03-01 08:03:58.502: D/username(925): username is ??
03-01 08:03:58.513: D/password(925): password is ??

在eclipse的logcat窗口中就显示成了小方块儿

有没有人可以解释一下是什么情况

注:操作系统是中文的,Eclipse下编码格式为UTF-8



...全文
607 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sniffer12345 2012-03-02
  • 打赏
  • 举报
回复
%s打印的是char*,jstring应该是w_char*吧

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧