0
中捕获NullPointerException的问题我有一个名为UpdaterService的服务类。以下是我的onStartCommand()方法:我遇到了在android
@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块中如何处理异常?所有的反馈appriciated。
感谢您的回复。抛出异常的run()方法是Updater类线程的run()方法。 – 2012-08-12 10:59:37
是的,它与你的try-catch是不同的线程......尝试把try-catch放在run方法中。 – Madushan 2012-08-12 11:09:09
谢谢!这帮了我,但现在我得到了一个不同的错误:'08-12 13:13:26.118:错误/ AndroidRuntime(2089):未捕获的处理程序:线程更新程序由于未捕获的异常退出 08-12 13:13:26.118: ERROR/AndroidRuntime(2089):java.lang.RuntimeException:无法在android.os.Handler中调用Looper.prepare() 的线程内部创建处理程序。(Handler.java:121) at android.widget.Toast。 (Toast.java:68) at android.widget.Toast.makeText(Toast.java:231) at com.morten.app.klepprc.utility.Stuff.showErrorMessage(Stuff.java:94)' –
2012-08-12 11:17:22