将 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的主要内容,如果未能解决你的问题,请参考以下文章

将android logcat数据写入文件

如何把android开发的时候把LogCat里的内容复制出来?如果不能复制,要是转储到文件中请说明详细步骤?

adb logcat 通过包名过滤日志并输出到txt文件

请教用adb logcat 命令将log输出到文件的问题

找不到 android NDK 堆栈跟踪

android logcat抓取app日志