我正在为phonegap android应用程序开发崩溃报告程序插件。为了进行测试,我必须使应用程序崩溃,并且必须调用“不幸的是,应用程序已停止”窗口。当我在javascript中做出未处理的异常时,该应用不会崩溃。而是显示相同的屏幕。我通过在javascript中执行一些无限循环来使应用程序屏幕停止响应用户输入,并等待了大约1个小时,但应用程序并未崩溃。默认情况下,phonegap库是否处理异常?如何通过在javascript级别中设置异常来使我的应用崩溃?
我尝试了以下代码,并在'CordovaActivity'类中添加了Java方法来生成崩溃。
public static void generateCrash()
{
int a = 0;
int b = 10;
int c = b/a ;
}
当我从java(从活动类中的'onCreate')调用此方法时,应用程序崩溃。但是,当我使用插件从javascript调用相同的方法时,该应用程序不会崩溃。我希望我的应用程序通过从javascript调用/调用某些功能而崩溃。
按下菜单按钮会导致崩溃:
您无法通过插件或javascript调用使应用程序崩溃,因为异常是在内部处理的。如果要使应用程序在android中崩溃,则可以在Android平台中编辑CordovaActivity.java。更改onCreateOptionsMenu,如下所示:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.postMessage("onCreateOptionsMenu", menu);
throw new RuntimeException();
}
按下菜单按钮,应用程序将崩溃并显示“不幸的是,应用程序已停止”窗口。
通过从Javascript调用某些本机函数而崩溃:
为Phonegap编写一个Android本机插件。请参阅http://docs.phonegap.com/en/3.0.0/guide_platforms_android_plugin.md.html#Android%20Plugins创建插件。在execute方法内引发异常。这将在父层中处理(这就是为什么您可以在控制台中看到有关崩溃的日志),因此请进行以下更改以使应用程序崩溃。(这两个类都属于org.apache.cordova包)
catch (Exception e){}
块。删除ExposedJsApi类的exec方法中的catch (Throwable e) {}
块。
进行此更改后,我可以通过javascript调用使应用程序崩溃。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句