android - adb logcat -f log.txt 错误: couldn't open output file: Read-only file system

标签 android logging adb logcat android-logcat

在 windows (win7) 上,通过 USB 调试真实手机我想将 logcat 日志转储到我 PC 上的文件中。数据速率超出了 eclipse 中可用的速率;我想要整个未过滤的日志。

根据logcat command line instructions这应该是微不足道的

logcat -f logfile.txt

我在 windows 命令行上使用 adb logcat -f logfile.txt

但这总是以

响应

无法打开输出文件:只读文件系统

文件系统不是只读的。在那里创建和写入文件可以正常工作,并且 adb logcat > logfile.txt 等粗略的重定向也可以按预期工作。提供日志文件的完整路径没有区别。

我想使用 logcat 的 -n-r 选项,但它们需要 -f 才能工作。

有什么建议吗?


注释。 这个问题接近 one asked on Ubuntu但这没有在 Windows 上对我有用的答案,以及我已经尝试过但不起作用的一个建议。 SO 上大多数类似的引用只是引用帮助页面,说 -f 文件名 应该可以工作。

对问题进行了编辑,以使其与有用的评论和回复保持同步。

最佳答案

不幸的是,logcat-f 选项似乎只能在 android 设备 的文件系统上创建文件,而不能在开发主机上。

通过指定一个裸文件名,您很可能会导致它尝试在设备的根目录中创建一个文件,该文件通常是不可写的。

如果您希望在设备上创建文件,请指定可写位置(适当的路径会因设备和版本而异,但以当前示例为例):

adb logcat -f /mnt/sdcard/log.txt

作为进一步的解释,实验表明键入 adb logcat 会导致设备上的 /system/bin/logcat 程序被执行,类似于如果你输入 adb shell logcat。 ADB 可以轻松地将来自该程序的标准或错误输出传递回主机,但没有设备端 API 可供在设备上运行的程序用来请求 ADB 在开发机器上创建文件。保存到文件和轮换操作可以在运行在开发机器上的 ADB 部分中实现,但这不是目前的工作方式。

bonitarunner 在开发机器上使用 shell 重定向的解决方案是一个简单的答案。应该可以想出一个主机端过滤程序或脚本来实现类似于 -r-n 选项的限制和旋转功能。

关于android - adb logcat -f log.txt 错误: couldn't open output file: Read-only file system,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23425066/

相关文章:

logging - 一个带有错误通知的好的日志监控工具?

android - Android Studio 无法识别 LG G4

android - 为什么我在 Eclipse 的 DDMS 透视模式下看不到我的 android 设备?

android - 未连接 USB 电缆时,ADB over TCP/IP 无法工作

java - getExternalFilesDir 和 getExternalStorageDirectory() 之间的区别

java - 是什么导致 switch 语句中生成的 R.id.xxx 值出现 "constant expression required"错误?

android - 使用 WorkManager 的定期工作请求不起作用

android - 带有 ChildFragmentManager 的 FragmentStatePagerAdapter - FragmentManagerImpl.getFragment 导致 NullPointerException

amazon-web-services - 如何从 AWS Beanstalk 中仅检索我关心的日志

c - 从 err(3) 函数创建日志文件