0

この例外をまったくキャッチできないようで、アプリがクラッシュします。

public void GoToStation(View v)
{
try
{
 Intent myIntent = new Intent(MainActivity.this, CustomizedListViewStudentZone.class);
 startActivityForResult(myIntent, 0);
} 

}
catch (Exception e)
{
Toast.makeText(this, "You need a data connection to view Safety Zones", Toast.LENGTH_LONG).show();  

}

アプリのクラッシュと Null Pointer Exception が発生し続ける

これが私の丸太猫です

01-06 04:55:28.667: E/AndroidRuntime(2983): FATAL EXCEPTION: main
01-06 04:55:28.667: E/AndroidRuntime(2983): java.lang.RuntimeException: Unable to start activity ComponentInfo{police.uk.greatermanchesterpoliceandroid/police.uk.greatermanchesterpoliceandroid.CustomizedListViewStation}: java.lang.NullPointerException
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1830)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.app.ActivityThread.access$1500(ActivityThread.java:132)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.os.Looper.loop(Looper.java:150)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.app.ActivityThread.main(ActivityThread.java:4277)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at java.lang.reflect.Method.invokeNative(Native Method)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at java.lang.reflect.Method.invoke(Method.java:507)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at dalvik.system.NativeStart.main(Native Method)
01-06 04:55:28.667: E/AndroidRuntime(2983): Caused by: java.lang.NullPointerException
01-06 04:55:28.667: E/AndroidRuntime(2983):     at police.uk.greatermanchesterpoliceandroid.CustomizedListViewStation.onCreate(CustomizedListViewStation.java:100)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
01-06 04:55:28.667: E/AndroidRuntime(2983):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1794)
01-06 04:55:28.667: E/AndroidRuntime(2983):     ... 11 more
4

4 に答える 4

1

Gabriel Netto が述べたように、あなたのエラーは / にonCreateありCustomizedListViewStationます。への呼び出しstartActivityForResultは、Android OS へのインテントを起動するだけですぐに返されるため、新しいアクティビティによってスローされた例外はキャッチされません。実際、後に置いたコードはstartActivityForResultその前に実行されることさえありますonCreateonCreateのエラーをチェックする必要がありCustomizedListViewStationます。

于 2013-08-07T21:14:18.273 に答える
0

答えてくれたみんなに感謝します。それは確かに使用するのに適したコードでした。エラーは宛先アクティビティによってスローされていました。

修正は、CustomizedListViewStudentZone の作成時にエラーを処理することでした。

このメソッドに try catch を適用したところ、問題が修正されました。

于 2013-08-08T06:13:41.023 に答える
0

Dmitry Zaitsev が言ったように、startActivity では Activity ライフサイクルの例外を処理しません。

代わりに、例外をスローできる 2 番目のアクティビティの onCreate で例外をキャプチャする必要があります。

于 2013-08-07T22:26:48.943 に答える
0

Android OS のアーキテクチャ上、このような例外をキャッチすることはできません。(または同様のメソッドを)呼び出すことによってstartActivity、実際にはActivityすぐに新しいものを作成しているわけではありません。代わりに、あなたはそのようなものを表示したいと言いActivity、OSはあなたのIntent(文字通り、意図)を登録します。次に、OS があなたを処理するのに適した時期であると判断すると、IntentあなたのActivity.

つまり、 - のActivity呼び出し内ではなくstartActivity、後で作成されます。OSの内部ロジック内。したがって、例外がスローされた場合、それはメソッドに含まれていないため、キャッチできません。

于 2013-08-07T21:17:16.283 に答える