如何从Cordova插件类强制Android应用程序崩溃?

时间:2015-01-24 19:56:41

标签: android cordova crash

我需要在Cordova插件类中强制安装Android应用程序。

问题是插件类在一个单独的Thread中运行,所以即使我强制RuntimeException(),它也只会崩溃分离的线程。

2 个答案:

答案 0 :(得分:0)

您的插件代码应该做的是在Rahits answer上定义的未处理异常上定义处理程序。想法是附加到这样的事件(从链接的答案借来的代码)

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
  public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
    Log.e("Error"+Thread.currentThread().getStackTrace()[2],paramThrowable.getLocalizedMessage());
  }
});

然后在调用回调时,抛出导致所需效果的真实异常。

答案 1 :(得分:0)

如果您想从cordova插件中崩溃应用程序/或在Android应用程序中按菜单按钮,您必须在how to make my phonegap android app crash?中提到的cordova项目中编辑几个类。

通过从Javascript调用某些本机函数来崩溃:

为Phonegap编写Android原生插件。有关插件创建,请参阅http://docs.phonegap.com/en/3.0.0/guide_platforms_android_plugin.md.html#Android%20Plugins。在execute方法中抛出异常。这将在父层中处理(这就是为什么你可以在控制台中看到崩溃的日志),所以请做以下更改以使应用程序崩溃。(这两个类都属于org.apache.cordova包)

  • pluginManager 类的 execHelper 方法中删除 catch(例外e){} 块。
  • ExposedJsApi 类的 exec 方法中删除 catch(Throwable e){} 块。

通过此更改,我可以通过javascript调用使应用程序崩溃。