Android NDK中printf的输出在哪里?

5

I have following code c++ code:

static void print_string(JNIEnv * env, jclass clazz, jstring str){
    jboolean isCopy;
    const char* utf_string;
    utf_string = env->GetStringUTFChars(str, &isCopy);

    env->ReleaseStringUTFChars(str, utf_string);
    //LOGI("%s",utf_string);
  //  LOGE("JNI Out = %s", utf_string);
    printf("jni out: %s",utf_string);
   __android_log_print(ANDROID_LOG_INFO, "MyTag", "The value is %s", utf_string);
    env->ReleaseStringUTFChars(str, utf_string);
}

我在logcat中没有看到任何输出,那么它去哪里了?我该怎样查看它?

1个回答

4
根据文档,默认情况下输出被丢失:
Android系统默认将stdoutstderr (System.outSystem.err) 输出发送到/dev/null。有一些方法可以更改此设置(在已获取Root权限的设备上),例如使用从文档中提取的setprop命令:
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接