热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使我的phonegapAndroid应用程序崩溃?

如何解决《如何使我的phonegapAndroid应用程序崩溃?》经验,为你挑选了2个好方法。

我正在为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中的某些函数来崩溃.



1> kumar..:

按菜单按钮崩溃:

您无法通过插件或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包)

删除pluginManager类的execHelper方法中的catch (Exception e){}块.

catch (Throwable e) {}ExposedJsApi类的exec方法中删除块.

通过此更改,我可以从Javascript调用中崩溃应用程序.



2> Travis..:

如果一个应用程序像网页一样运行,无限循环可能需要一些时间才能导致崩溃,但应该有效.记得在测试后将其删除.因为它会导致异常并导致程序超时,所以如果在其中使用了可能有害的内容,则应该正确调用崩溃.做这样的事情:

while(true){ eval("9.99999e+5000 / Infinity"); }

因为我们不编辑变量,所以我们将防止out of memory错误.

如果这不起作用,请参阅@Aaron D的答案,如果这不起作用,请参阅@ kumar的答案.


推荐阅读
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • 这个问题困扰了我两天,卸载Dr.COM客户端(我们学校上网要装这个客户端登陆服务器,以后只能在网页里输入用户名和密码了),问题解决了。问题的现象:在实验室机台式机上安装openfire和sp ... [详细]
  • java中的try catch_Java中的trycatchfinally异常处理
    Java中的try-catch-finally异常处理一、异常处理异常(Exception):是在运行发生的不正常情况。原始异常处理:if(条件){处理办法1处理办法 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Monkey错误分析日志定位相关的知识,希望对你有一定的参考价值。Monkey测试可以发现的问题 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 在开发中,有时候一个业务上要求的原子操作不仅仅包括数据库,还可能涉及外部接口或者消息队列。此时,传统的数据库事务无法满足需求。本文介绍了Java中如何利用java.lang.Runtime.addShutdownHook方法来保证业务线程的完整性。通过添加钩子,在程序退出时触发钩子,可以执行一些操作,如循环检查某个线程的状态,直到业务线程正常退出,再结束钩子程序。例子程序展示了如何利用钩子来保证业务线程的完整性。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • Ihaveaforminadirectivetemplate:我在指令模板中有一个表单:<formn ... [详细]
  • Android系统启动过程分析一、Android平台架构首先贴一张Android系统架构图方便理解整个Android架构,这可以让我们从整体上对整个启动流程有个大概认知。可以看出整 ... [详细]
  • http:friendlysong.blog.163.comblogstatic3225243920119142325417命令行如下find.-typef-size1000000 ... [详细]
author-avatar
PHP_sunshine
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有