所以,我有JSONException(API查询),但只有当我在模拟器上运行应用程序时(在不同的虚拟设备上,不同的API)。该问题仅存在于一个查询中。当我在应用程序的另一个地方调用相同的数据时,它可以工作。在物理设备上,它工作得很好。问题是在模拟器上出现此错误的原因是什么,以及我是否应该打扰?
Android Studio:2.2.3
错误:
E / EGL_emulation:tid 2936:eglSurfaceAttrib(1165):错误0x3009(EGL_BAD_MATCH) E / QueryUtils:解析城市JSON结果时出现问题 org.json.JSONException:没有数据值 at org.json.JSONObject.get(JSONObject.java:389) at org.json.JSONObject.getJSONObject(JSONObject.java:609) 在com.mobileallin.polskiesmogi.QueryUtils.extractFeatureFromJson(QueryUtils.java:171) 在com.mobileallin.polskiesmogi.QueryUtils.fetchcityData(QueryUtils.java:58) 在com.mobileallin.polskiesmogi.CityLoader.loadInBackground(CityLoader.java:54) 在com.mobileallin.polskiesmogi.CityLoader.loadInBackground(CityLoader.java:16) 在android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:312) 在android.content.AsyncTaskLoader $ LoadTask.doInBackground(AsyncTaskLoader.java:69) 在android.content.AsyncTaskLoader $ LoadTask.doInBackground(AsyncTaskLoader.java:66) 在android.os.AsyncTask $ 2.call(AsyncTask.java:295) 在java.util.concurrent.FutureTask.run(FutureTask.java:237) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:588) 在java.lang.Thread.run(Thread.java:818)
答案 0 :(得分:0)
好的,所以问题的原因非常愚蠢 - 我是通过点击键盘上的输入(搜索功能)在模拟器上提交查询。看来输入不会在模拟器上以正确的方式触发onQueryTextSubmit方法。您需要单击模拟器上的“提交”按钮。