안드로이드 SDK의 HelloJni 샘플을 변경했습니다. 표준 출력에 무엇인가 쓰고 싶습니다. 여기에 JNI 코드 :JNI Android에서 stdout에 작성 하시겠습니까? <android/log.h>가 없으면
#include <stdlib.h>
#include <jni.h>
#include <stdio.h>
jstring
Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env,
jobject thiz)
{
printf("Hello from C !\n");
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
그리고 이것은 내 로그입니다 : 내 로그 캣의 안녕 라인을 볼 수 있도록 내가 true로 log.redirect - 표준 입출력을 설정 한
09-28 13:07:02.906: I/ActivityManager(1650): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.hellojni/.HelloJni u=0} from pid 1790
09-28 13:07:03.007: D/dalvikvm(1650): GC_FOR_ALLOC freed 687K, 10% free 9300K/10247K, paused 62ms, total 62ms
09-28 13:07:03.070: D/dalvikvm(3562): Not late-enabling CheckJNI (already on)
09-28 13:07:03.085: I/ActivityManager(1650): Start proc com.example.hellojni for activity com.example.hellojni/.HelloJni: pid=3562 uid=10052 gids={1015, 1028}
09-28 13:07:03.101: I/dalvikvm(3562): Turning on JNI app bug workarounds for target SDK version 3...
09-28 13:07:03.132: D/dalvikvm(3562): Debugger has detached; object registry had 1 entries
09-28 13:07:03.171: D/dalvikvm(3562): Trying to load lib /data/data/com.example.hellojni/lib/libhello-jni.so 0x414af318
09-28 13:07:03.179: D/dalvikvm(3562): Added shared lib /data/data/com.example.hellojni/lib/libhello-jni.so 0x414af318
09-28 13:07:03.179: D/dalvikvm(3562): No JNI_OnLoad found in /data/data/com.example.hellojni/lib/libhello-jni.so 0x414af318, skipping init
09-28 13:07:03.265: V/TabletStatusBar(1715): setLightsOn(true)
09-28 13:07:03.328: I/ActivityManager(1650): Displayed com.example.hellojni/.HelloJni: +279ms
09-28 13:07:07.078: E/ThrottleService(1650): problem during onPollAlarm: java.lang.IllegalStateException: problem parsing stats: java.io.FileNotFoundException: /proc/net/xt_qtaguid/iface_stat_all: open failed: ENOENT (No such file or directory)
.
누군가이 작업을하는 방법에 대한 아이디어가 있습니까? 감사.
더 명확히 말하면, 내가하고 싶은 것은 stdout에서 출력물을 보는 것입니다. 아무런 문제가 없다. 출력을 stdout으로 할 수 있는지 여부를 알고 싶다. 누구에게 __android_log_print 솔루션을 제공해 주셔서 감사합니다.
더 명확히 말하면, 내가하고 싶은 것은 stdout에서 출력을 보는 것입니다. 이것이 JNI에서 수행 될 수 있는지 알아보기위한 약간의 테스트가 있습니다. 이 문제는에 아무런 문제가되지 않으며 표준 출력으로 출력 할 수 있는지 여부를 알고 싶습니다. –
user1706070
에뮬레이터 또는 루팅 된 기기에서 [redirect] (http://developer.android.com/tools/debugging/debugging-log.html#viewingStd)가 작동합니다. –
[is "std :: cout"이 Android- ndk] (http://stackoverflow.com/questions/8870174/is-stdcout-usable-in-android-ndk) –