Runtime.exec有时会抛出IllegalMonitorStateException

时间:2012-12-14 00:16:29

标签: android

我们有以下代码,有时会抛出java.lang.IllegalMonitorStateException:解锁无主监视器

Runtime run = Runtime.getRuntime();
Process p = run.exec(SOME_COMMAND);

这个代码在应用程序启动时很早就执行了。

如果我手动启动应用程序,它可以正常工作。我从来没有看到任何问题(对于发射的猎人)。

但是,当它作为测试自动化的一部分启动时,有时此代码会因该异常而失败。 我们的测试自动化确实如下:

  • 安装我们的应用
  • 立即启动
  • 执行一些测试
  • 卸载应用
  • 再次安装应用
  • 再次发布

这是崩溃的堆栈轨道。

  11-14 14:59:26.675: W/dalvikvm(3788): threadid=12: thread exiting with uncaught exception (group=0xb4120180)
    11-14 14:59:26.675: E/AndroidRuntime(3788): FATAL EXCEPTION: SomeThread
    11-14 14:59:26.675: E/AndroidRuntime(3788): java.lang.IllegalMonitorStateException: unlock of unowned monitor
    11-14 14:59:26.675: E/AndroidRuntime(3788):     at java.lang.ProcessManager.exec(ProcessManager.java:229)
    11-14 14:59:26.675: E/AndroidRuntime(3788):     at java.lang.Runtime.exec(Runtime.java:168)
    11-14 14:59:26.675: E/AndroidRuntime(3788):     at java.lang.Runtime.exec(Runtime.java:241)
    11-14 14:59:26.675: E/AndroidRuntime(3788):     at java.lang.Runtime.exec(Runtime.java:184)
    11-14 14:59:26.675: E/AndroidRuntime(3788):     at aaa.SomeThread.run(SomeThread.java:41)

我感谢任何想法或信息。

0 个答案:

没有答案