Android I';我很难在安卓系统中捕获NullPointerException
我有一个名为UpdaterService的服务类。以下是我的onStartCommand()方法: updater是类updater的自定义对象,它扩展了线程。以下是我得到的例外情况:Android I';我很难在安卓系统中捕获NullPointerException,android,multithreading,exception-handling,Android,Multithreading,Exception Handling,我有一个名为UpdaterService的服务类。以下是我的onStartCommand()方法: updater是类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(1
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块中没有处理异常?所有反馈均已收到。我假设您的
开始()代码>方法是非阻塞的
run()方法发生异常,该方法位于另一个线程上?感谢您的回复。引发异常的run()方法是更新程序类线程的run()方法。。。尝试在跑步中使用Try-catch方法。谢谢!这对我有所帮助,但现在我遇到了一个不同的错误:08-12 13:13:26.118:error/AndroidRuntime(2089):未捕获处理程序:由于未捕获异常而退出线程更新程序08-12 13:13:26.118:error/AndroidRuntime(2089):java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序android.os.Handler.(Handler.java:121)在android.widget.Toast.(Toast.java:68)在android.widget.Toast.makeText(Toast.java:231)在com.morten.app.kleprc.utility.Stuff.阵雨消息(Stuff.java:94)
这是tuff.阵雨消息()
方法中的一个错误。你必须看看这个方法的作用。在我看来,该方法似乎正在尝试写入UI,但您不在UI线程上。在执行任何与UI相关的操作之前,您必须切换回UI线程。新错误似乎与我试图在UI线程上干杯有关。设法把它修好了。再次感谢!
if(application.getHostActivity() == null) {
throw new NullPointerException("HostActivity not instantiated");
}