将 adb logcat 重定向到 android avd
Posted
技术标签:
【中文标题】将 adb logcat 重定向到 android avd【英文标题】:redirect adb logcat to android avd 【发布时间】:2013-12-06 12:49:21 【问题描述】:在运行 android 应用程序测试之前,我想将 Android 开发人员工具 logcat 输出重定向到从 shell 命令到虚拟设备的文件。 我通常用来将输出重定向到文件的命令是:
adb shell logcat -v time - f log.txt packageName:F *:E > /folder/log.txt
但它会将日志文件放入计算机目录(/folder/ in this case)
。
我想用虚拟设备中的目录更改它,但像上面一样,它说该文件夹不存在。
有没有办法通过shell命令做到这一点?
【问题讨论】:
【参考方案1】:你可以这样做
adb shell "logcat -v time -f /mnt/sdcard/log.txt packageName:F *:E"
从主机外壳通过一个命令完成所有操作。使用 -f 标志时不需要重定向,事实上,如果您将 logcat 的输出定向到文件而不是标准输出,则重定向不会捕获任何内容。
如果这不起作用,可能是因为您使用的 Android 版本将外部存储安装在其他路径上,或者您的虚拟设备上没有附加模拟 SD 卡 .
您可以通过检查
的输出来调查这些问题中的任何一个adb shell mount
如果您的 AVD 上根本没有 sdcard,请按照模拟器文档说明创建和附加一个。
仅用于测试目的除了 sdcard 之外,可能还有其他路径可供您写入,尤其是在 adb shell 以 root 身份运行的模拟器上,例如在某些版本 /data/local
或类似版本上.
【讨论】:
【参考方案2】:你可以试试这个adb shell
然后#logcat>/sdcard/log.txt
现在我确定结果了。你只需要为 adb shell 打开一个命令提示符窗口,我猜这还不错。
【讨论】:
和我的一样,唯一的区别是过滤特定级别的输出。文件夹 /sdcard/log.txt 不存在 不起作用:adb 没有发出任何错误信号,但在指定的路径 (/sdcard/) 中没有 log.txt。 嗯,它对我有用。检查你的模拟器是否有SD卡 现在可以工作了,可能是因为在我将一些 java 记录器重定向到另一个文件之前,我无法将相同的输出重定向到不同的文件。以上是关于将 adb logcat 重定向到 android avd的主要内容,如果未能解决你的问题,请参考以下文章