[英]Android app won't crash with Eclipse
是的,是的。 盡管引入了一些錯誤的代碼,該應用仍繼續運行。 我真的是Android和Eclipse開發的新手,所以我想知道是否有某些設置導致應用程序不崩潰? 我嘗試導致崩潰的原因是為了測試一些崩潰報告代碼。
這是我創建異常的方法。 在我的一個按鈕事件處理程序中,我添加了以下行:
int i = 1 / 0; // Divide by zero is bad!
這是遇到上一行之后的LogCat輸出:
04-25 15:50:39.880: W/System.err(2786): java.lang.reflect.InvocationTargetException
04-25 15:50:39.880: W/System.err(2786): at java.lang.reflect.Method.invokeNative(Native Method)
04-25 15:50:39.880: W/System.err(2786): at java.lang.reflect.Method.invoke(Method.java:507)
04-25 15:50:39.880: W/System.err(2786): at com.mystuff.android.ReflectiveAction.run(Unknown Source)
04-25 15:50:39.880: W/System.err(2786): at com.mystuff.android.Command.onClick(Unknown Source)
04-25 15:50:39.890: W/System.err(2786): at android.view.View.performClick(View.java:2532)
04-25 15:50:39.890: W/System.err(2786): at android.view.View$PerformClick.run(View.java:9293)
04-25 15:50:39.890: W/System.err(2786): at android.os.Handler.handleCallback(Handler.java:587)
04-25 15:50:39.890: W/System.err(2786): at android.os.Handler.dispatchMessage(Handler.java:92)
04-25 15:50:39.890: W/System.err(2786): at android.os.Looper.loop(Looper.java:143)
04-25 15:50:39.890: W/System.err(2786): at android.app.ActivityThread.main(ActivityThread.java:4263)
04-25 15:50:39.890: W/System.err(2786): at java.lang.reflect.Method.invokeNative(Native Method)
04-25 15:50:39.890: W/System.err(2786): at java.lang.reflect.Method.invoke(Method.java:507)
04-25 15:50:39.890: W/System.err(2786): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-25 15:50:39.890: W/System.err(2786): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-25 15:50:39.890: W/System.err(2786): at dalvik.system.NativeStart.main(Native Method)
04-25 15:50:39.890: W/System.err(2786): Caused by: java.lang.ArithmeticException: divide by zero
04-25 15:50:39.890: W/System.err(2786): at com.mystuff.theapp.HomePage.evSurprise(HomePage.java:209)
04-25 15:50:39.890: W/System.err(2786): ... 15 more
感謝您提供的所有幫助!
編輯-這是帶有錯誤代碼行的整個事件處理程序:
public void evSurprise () {
int i = 1 / 0;
cpanel.animateGoButtonWhole();
cpanel.showThrobber();
Helper.startActivity( this, Actions.VENUE, Actions.SEARCH, false );
}
順便說一句,此代碼是由我們公司的外部承包商編寫的。 我是一位目標C程序員,他試圖了解Java和Android開發。 由於對代碼的了解有限,我可能沒有意識到一個異常處理程序。 如果是這種情況,我應該找什么?
您可能會發現錯誤。
如果您執行1/0而沒有發現錯誤,則日志看起來像
E/AndroidRuntime(27801)
E-錯誤。 但是我們是
W/System.err(2786)
W-警告。 您正在捕獲錯誤並進行打印。
因此,請刪除代碼中的try / catch,如下所示:
try{
//your code
}catch(Exception e){
e.printStackTrace(e)
}
僅使用//您的代碼部分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.