Android Studio天气应用程序崩溃

时间:2017-03-02 21:49:17

标签: java android api mobile weather

所以,我一直在关注Android天气应用程序的YouTube教程。该应用程序似乎编译,但无论何时在模拟器上打开崩溃。我不是最流利的程序员,但代码是理解的。我无法弄清楚造成这个问题的原因。该应用程序应该获取“MainActivity.java”中硬编码位置的位置的天气数据。数据来自Yahoo!使用API​​。

项目文件的链接:https://drive.google.com/drive/folders/0B2dQ9-JQjysVeXlqZENBZDExN0E?usp=sharing

以下是我得到的错误:

  

---------崩溃的开始   E / AndroidRuntime:致命异常:主要                     处理:com.example.mattbenson.cw_2_weather,PID:2529                     java.lang.NullPointerException:尝试在空对象引用上调用虚方法'int org.json.JSONObject.optInt(java.lang.String)'                         at com.example.mattbenson.cw_2_weather.service.WeatherService $ 1.onPostExecute(WeatherService.java:81)                         at com.example.mattbenson.cw_2_weather.service.WeatherService $ 1.onPostExecute(WeatherService.java:38)                         在android.os.AsyncTask.finish(AsyncTask.java:667)                         在android.os.AsyncTask.-wrap1(AsyncTask.java)                         在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:684)                         在android.os.Handler.dispatchMessage(Handler.java:102)                         在android.os.Looper.loop(Looper.java:154)                         在android.app.ActivityThread.main(ActivityThread.java:6119)                         at java.lang.reflect.Method.invoke(Native Method)                         在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886)                         在com.android.internal.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在0x76990bb1c580上遇到EGL错误12301,暂停渲染...   申请已终止。

(对不起,我是这个网站的新手!)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

正如StackTrace所说,错误位于第81行WeatherService的{​​{1}}类,因为它返回 NULL

尝试使用方法optInt with fallbackint count = queryResults.optInt("Count");