waj*_*jiw 66 c java-native-interface logging android android-ndk
我正在寻找一种使用Eclipse在Android NDK应用程序中轻松调试C代码的方法.我已经阅读了使用gdb或类似方法调试应用程序的方法,但我想要的是一种以某种方式将消息推送到Eclipse的方法.
我正在寻找一种简单的解决方案,就像在C中使用打印功能并在DDMS日志或类似的东西中看到它一样简单.有没有人有这方面的经验?
svd*_*ree 119
您可以使用Android日志记录工具:
#include <android/log.h>
#define APPNAME "MyApp"
__android_log_print(ANDROID_LOG_VERBOSE, APPNAME, "The value of 1 + 1 is %d", 1+1);
Run Code Online (Sandbox Code Playgroud)
确保您还链接到Android.mk文件中的日志库:
LOCAL_LDLIBS := -llog
Run Code Online (Sandbox Code Playgroud)
She*_*ami 12
最简单的方法可能是将printf()语句重定向到系统日志(基于官方ADB参考手册的"Viewing stdout and stderr"部分).
在命令行上键入以下3个命令:
adb shell stop
adb shell setprop log.redirect-stdio true
adb shell start
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过查看Eclipse Debugger的"LogCat"窗口或在命令行上键入它来查看"printf()"语句的输出:
adb logcat
Run Code Online (Sandbox Code Playgroud)
请注意,由于数据在从模拟器或设备传输之前是缓冲的,因此您应该清除stdout缓冲区,例如:
printf("Hello, I am %d years old!\n", 30);
fflush(stdout);
Run Code Online (Sandbox Code Playgroud)
然后,您应该看到以"I/stdout:"开头的日志消息
到目前为止,还没有人发布有关不同日志级别的信息。答案是尝试使日志记录“图片”已满。
#include <android/log.h>
#define TAG "MY_TAG"
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)
用法:
char err[] = "wrong";
LOGE("Something went %s", err);
Run Code Online (Sandbox Code Playgroud)
如下所示链接Android日志库。
Android.mk:
LOCAL_LDLIBS := -llog
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt:
find_library( log-lib log )
target_link_libraries( ${log-lib} )
Run Code Online (Sandbox Code Playgroud)
进一步阅读:记录
您还可以使用一点util
#include <android/log.h>
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "native-lib", __VA_ARGS__))
Run Code Online (Sandbox Code Playgroud)
用法:
std::string hello = "Hello from C++";
int a = 1;
LOGI("int %d, string: %s", a, hello.c_str());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57570 次 |
最近记录: |