0

UpdaterService という Service クラスがあります。以下は私の onStartCommand() メソッドです:

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
       if(Constants.DEBUG) Log.d(TAG, "onStarted");
       updater = new Updater();
       try {
           updater.start();
       } catch(NullPointerException e) {
           Stuff.showErrorMessage();
       }

       return Service.START_STICKY;
}

updater は、Thread を拡張するクラス Updater のカスタム オブジェクトです。以下は、私が取得している例外です。

08-12 12:19:49.708: ERROR/AndroidRuntime(1995): Uncaught handler: thread Updater exiting due to uncaught exception
08-12 12:19:49.708: ERROR/AndroidRuntime(1995): java.lang.NullPointerException: HostActivity not instantiated
    at com.morten.app.klepprc.services.UpdaterService$Updater.run(UpdaterService.java:135)

これにより、アプリケーションがクラッシュします。UpdaterService.java の 135 行目:

if(application.getHostActivity() == null) {
   throw new NullPointerException("HostActivity not instantiated");
}

catch ブロックで例外が処理されないのはなぜですか? すべてのフィードバックが高く評価されました。

4

1 に答える 1

1

あなたのstart();メソッドはノンブロッキングだと思います。

別のスレッドにある run() メソッドで例外が発生しましたか?

于 2012-08-12T10:52:34.053 に答える