我一直在开发一个单一 Activity 应用程序,该应用程序接收 UDP 数据包,解析其消息,然后更改 ImageView、TextView,并根据消息包含的内容播放警报歌曲。我有三个类:MainActivity、ListeningService 和 AndroidUDP。 MainActivity 包含所有 GUI 实现,AndroidUDP 包含枚举,其中包含 20 种可能的警报类型,具体取决于 UDP 消息包含的内容以及设置 TextView 和 ImageViews,ListeningService 包含 AsyncTask 私有(private)类。
这不是我写的,而是一位电气工程师写的,我的任务是让它真正发挥作用。当我尝试通过 AndroidUDP.startIt()
方法调用 ListeningService
时,出现错误
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.p3_group.v2vapp/com.p3_group.v2vapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.p3_group.v2vapp.ListeningService.continueListening()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.p3_group.v2vapp.ListeningService.continueListening()' on a null object reference at com.p3_group.v2vapp.MainActivity.onCreate(MainActivity.java:61)
我确信我正在做一些愚蠢的事情,比如尝试从错误的线程调用后台更新。我以前从未做过这种事情,所以任何指点都会很棒!
是的,我知道这段代码非常糟糕。我只需要它能够满足我们正在做的事情,而不是完美
最佳答案
您好,您根本没有启动服务,并且您尝试在“public void doStuff(MainActivity r, IntentFilter filter)
”中绑定(bind)服务,但它不会绑定(bind),所以ListeningService ListeningService
在 AndroidUDP 中为 null,但是您尝试调用下面的方法,但 ListeningService 为 null,因此它给出了空指针异常。
public void startIt()
{
listeningService.continueListening();
}
关于java - AsyncTask.execute() 上的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45090837/