所以,我一直在关注YouTube教程,以供Android天气应用程序。该应用似乎在编译,但是每当在模拟器上打开时崩溃。我不是最流利的程序员,但是可以理解代码。我不知道是什么原因引起了问题。该应用程序应该在" mainActivity.java"中的硬编码位置的位置获取天气数据。数据是从Yahoo!获取的使用API。
项目文件的链接:https://drive.google.com/drive/folders/0b2dq9-jqjysvexlqzenbzenbzdexn0e?usp = sharing
以下是我遇到的错误:
---------崩溃的开始 E/Androidruntime:致命例外:主要 过程:com.example.mattbenson.cw_2_weather,pid:2529 java.lang.nullpointerexception:尝试调用虚拟方法'int org.json.jsonobject.optint(java.lang.string)'null对象参考 在com.example.mattbenson.cw_2_weather.service.weatherservice $ 1.ONPOSTEXECUTE(weatherservice.java:81) 在com.example.mattbenson.cw_2_weather.service.weatherservice $ 1.ONPOSTEXECUTE(WeatherService.java:38) 在android.os.asynctask.finish(asynctask.java:667) at android.os.asynctask.-wrap1(asynctask.java) at android.os.asynctask $ internalHandler.HandleMessage(asynctask.java:684) at android.os.handler.dispatchmessage(Handler.java:102) at android.os.looper.loop(looper.java:154) at android.app.activitythread.main(activityThread.java:6119) 在java.lang.reflect.method.invoke(本机方法)上 在com.android.internal.os.os.zygoteinit $ methodAndargScaller.run(zygoteinit.java:886) 在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:776) E/Surface:QueueBuffer:错误排队缓冲区到SurfaceTexture,-19 e/egl_emulation:TID 2570:SwapBuffers(487):错误0x300D(egl_bad_surface) w/openglrenderer:swapbuffers遇到的EGL错误12301 on 0x76990bb1c580,停止渲染... 申请终止。
(对不起,我是这个网站的新手!)
任何帮助都非常感谢。
正如StackTrace所说的错误是在第81 int count = queryResults.optInt("Count");
的类WeatherService
上,因为它返回 null 。
尝试使用带有后备值queryResults.optInt("Count", 0);