Runtime.getRuntime()报错null environment?请教大神

xdmartin 2014-11-30 02:18:21
尝试读取日志,在测试程序里,写在activity,执行的没问题。但是写到我自己的程序的service里,就开始报错: java.io.IOException: Error running exec(). Command: [logcat, -d] Working Directory: null Environment: null
请教大神,该怎么处理?另外,这个null environment 是怎么引起的?比较少遇到

public static void getLog()
{
System.out.println("sjjy--------func start--------"); // 方法启动
try
{
// ArrayList<String> cmdLine=new ArrayList<String>(); //设置命令 logcat -d 读取日志
// cmdLine.add("logcat");
// cmdLine.add("-d");
String[] cmdStrings = new String[] {"logcat", "-d"};
String retString = "";

ArrayList<String> clearLog=new ArrayList<String>(); //设置命令 logcat -c 清除日志
clearLog.add("logcat");
clearLog.add("-c");

Process process=Runtime.getRuntime().exec(cmdStrings); //捕获日志
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream())); //将捕获内容转换为BufferedReader


// Runtime.runFinalizersOnExit(true);
String str=null;
while((str=bufferedReader.readLine())!=null) //开始读取日志,每次读取一行
{
Runtime.getRuntime().exec(clearLog.toArray(new String[clearLog.size()])); //在这里报错//清理日志....这里至关重要,不清理的话,任何操作都将产生新的日志,代码进入死循环,直到bufferreader满
System.out.println("me__s"+str);


...全文
768 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
violet_小咔咔 2016-01-13
  • 打赏
  • 举报
回复
请问这个怎么解决的
mengqi8212 2015-10-13
  • 打赏
  • 举报
回复
加权限 777
xdmartin 2014-12-06
  • 打赏
  • 举报
回复
结贴。这是因为频繁的打开和关闭io导致打开文件太多。注意关闭和和减低频率就可以了。
xdmartin 2014-12-01
  • 打赏
  • 举报
回复
W/System.err(19751): Caused by: java.io.IOException: Too many open files,还有另一条报错语句,应该是这个,该怎么改写
xdmartin 2014-11-30
  • 打赏
  • 举报
回复
更正: 应该是这里报错,Process process=Runtime.getRuntime().exec(cmdStrings); //捕获日志

80,357

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧