org.json.JSONException:没有数据值:只有模拟器,适用于物理设备

时间:2017-02-13 09:29:58

标签: android testing emulation jsonexception

所以,我有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)

1 个答案:

答案 0 :(得分:0)

好的,所以问题的原因非常愚蠢 - 我是通过点击键盘上的输入(搜索功能)在模拟器上提交查询。看来输入不会在模拟器上以正确的方式触发onQueryTextSubmit方法。您需要单击模拟器上的“提交”按钮。