我有一个在嵌入式 linux (BusyBox v1.12.4) 上运行的 Java 应用程序。我使用的是 CDC 1.1,VM (cvm) 的版本是 CDC HI phoneme_advanced-Core-1.1.2-b111。
该应用程序的主要目的是收集一些数据并通过 GPRS 发送(使用 Apache commons library 的 FTPClient)
该应用程序运行良好,然后最近我添加了在发送之前压缩文件的功能。以下是压缩文件的代码:
public static boolean compressFile(String file, String fileCompressed)
{
boolean result = false;
try
{
Process process = Runtime.getRuntime().exec("tar -czvf " + fileCompressed + " " + file);
System.err.println("Compression in progress");
int returnValue = process.waitFor();
System.err.println("Finished compression");
BufferedReader stderror = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String s;
s = stderror.readLine();
if (s == null)
{
result = true;
} else
{
result = false;
System.err.println(s);
}
} catch (IOException e)
{
result = false;
Log.getInstance().newMessage(e.getMessage(), Log.ERROR);
} catch (InterruptedException e)
{
result = false;
Log.getInstance().newMessage(e.getMessage(), Log.ERROR);
}
return result;
}
添加此功能后,应用程序开始崩溃!该日志不包含任何内存错误或异常,并且它运行的系统缺少正确的配置,因此系统日志也没有显示任何内容(设备制造商告诉我它将在即将发布的版本中提供)。我什至无法在调试模式下启动 VM!
我必须补充一点,应用程序在压缩过程中不会崩溃,它只是在执行过程中随机崩溃。问题是它只有在启用压缩时才会崩溃!
有人见过这个吗?有人知道如何调试/解决这个问题吗?