我正在尝试在Android上运行一些GMock / GTest测试。这些都运行良好,但没有输出,因为GMock记录到stdout。
我尝试了以下但没有运气(可能是因为它适用于Dalvik VM,而且他们已经废除了Android 5中的内容):
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
当log.redirect-stdio
设置为true时,stdio仍然没有输出到logcat。
我还尝试使用streambuf
自定义多个std::cout.rdbuf
实现,尝试使用__android_log_print
将stdout指向logcat,但这些都没有向logcat打印任何内容。
有没有人成功设法将stdout重定向到Android 5中的logcat?
如果需要,我可以添加更多详细信息(例如我尝试的streambuf
实现)。
答案 0 :(得分:0)
这对于将stdout重定向到logcat的问题并不是一个真正的解决方案,但我建议将其作为一种解决方法,以防有人帮助。
您可以将stdout重定向到文件:
freopen("/data/data/com.your.package/files/out.txt", "w", stdout);
... // Call GMock which prints to the file instead
fclose(stdout)
然后我们可以cat
该文件来查看记录的测试结果。可悲的是,Android没有tail
,所以日志记录并非实时可用。 (除非你擅长垃圾邮件cat
)
答案 1 :(得分:0)