2012-08-24 201 views
0

我试图在应用程序内执行命令。我正在使用一个名为RootTools的库。我正在使用的命令是:应用程序在调试中运行良好但运行中

RootTools.getShell(true).add(new CommandCapture(0, 'dd if=boot.img of=/dev/block/platform/omap/omap_hsmmc.0/by-name/boot')).waitForFinish(); 

当我启用Eclipse调试模式时,应用程序正常工作。但是,当它运行正常模式时,该行不起作用。

该类使用AsyncTask,它允许我在主任务完成后使用名为onPostExecute()的方法执行另一个命令。

我注意到,在任何模式下,onPostExecute方法都可以完美工作。但不是主要方法,doInBackground()

我试着放置一个Thread.sleep来添加一些延迟,但这也没有帮助。

+0

什么时候没有工作,是否会产生错误? – ariefbayu

+0

没有错误发生。为了查看是否有变化,我需要重新启动设备。 当我启动调试重新启动时,我看到有变化。但不是在正常模式下运行时。 –

回答

1

尝试打开RootTools调试运行的命令时,并验证通过检查调试输出正在执行的命令在logcat。

RootTools.debugMode = true;

+0

我没有尝试过。但从调试,我看到它成功执行。但是执行的结果显示有一个例外。异常的消息是执行的命令的预期结果。我不知道为什么它被视为例外。 –

+0

你能告诉我吗?我可能会对发生的事情有所了解。 Pastebin可能? (顺便说一句,我注意到在你的代码中有一个语法错误,你没有包括结束报价...也,我认为你应该使用双引号而不是单?) – Stericson

+0

当然,我会尽快这样做。目前正在工作。语法错误是一个错误,不适用于代码。我将它重新写在帖子上,而不是复制并粘贴它。 –

0

尝试使用异步任务功能摆脱这个问题如下

private void anyfunction() 
    { 
    new AsyncTask().execute(); 
    } 
+0

我在另一个班级中完成了这个任务。 new FlashTask()。execute()。get(); –

+0

尝试在你调用这个类的同一个类中使用Asysn任务类,当然你会摆脱这个问题。有些事情发生,如果你在另一个类中使用Async任务并从另一个类中调用它,那么它会创建一些issues.try在同一个类中使用。 – raman

+0

为了确保我做对了。我应该将任务类实现为私有类? –

相关问题