我试图通过Xamarin.Android应用程序中的shell运行logcat,以获取设备范围的日志和崩溃。但是,对于一个相对简单的shell命令,我收到了非常奇怪的语法错误,设备之间的错误消息也有所不同。
这是我的代码的片段:
var process = Runtime.GetRuntime().Exec("/system/bin/sh /system/bin/logcat");
var errorStream = new BufferedReader(new InputStreamReader(process.ErrorStream));
var inputStream = new BufferedReader(new InputStreamReader(process.InputStream));
string line;
while ((line = errorStream.ReadLine()) != null)
{
System.Console.WriteLine(line);
}
while ((line = inputStream.ReadLine()) != null)
{
System.Console.WriteLine(line);
}
这将以退出代码1退出。
在M3SM10(Android 4.3)上,我得到以下输出:
/system/bin/logcat[1]: syntax error: '�
4P14' unexpected
在Google Pixel(Android 9.0)上,我得到:
/system/bin/logcat[4]: $,����X�����: not found
/system/bin/logcat: no closing quote
/system/bin/logcat[5]: can't open ����: No such file or directory
/system/bin/logcat[5]: ��zR: not found
/system/bin/logcat[5]: l���h���������������������������������������������������@x: not found
/system/bin/logcat[6]: syntax error: unexpected ')'
任何帮助弄清为什么会发生这种情况的人将不胜感激。