日志猫

时间:2015-07-30 10:13:43

标签: android android-volley

我有下面的代码使用凌空,打开应用程序时我有一个空白页面,但是当我点击我的php链接时它的返回值。

为什么它在开口处显示白色空白?我得到了一个例外,但我无法阅读它你能帮助我吗?

这是错误的一行

D/Volley(4754): [1] 2.onErrorResponse: MainActivity

这是代码

JsonArrayRequest movieReq = new JsonArrayRequest(url,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d("r", response.toString());
                    hidePDialog();
                    System.out.print(response);

                    // Parsing json
                    for (int i = 0; i < response.length(); i++) {
                        try {

                            JSONObject obj = response.getJSONObject(i);
                            Movie movie = new Movie();
                            movie.setTitle(obj.getString("name"));
                            movie.setThumbnailUrl(obj.getString("path"));
                            movie.setRating(obj.getString("description"));
                          //  movie.setRating(((Number) obj.get("description"))
                                //    .doubleValue());
                            movie.setYear(obj.getString("likes"));
                          //  movie.setYear(obj.getInt("likes"));

                            // Genre is json array
                            JSONArray genreArry = obj.getJSONArray("comments");
                            ArrayList<String> genre = new ArrayList<String>();
                            for (int j = 0; j < genreArry.length(); j++) {
                                genre.add((String) genreArry.get(j));
                            }
                            movie.setGenre(genre);

                            // adding movie to movies array
                            movieList.add(movie);

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }

                    // notifying list adapter about data changes
                    // so that it renders the list view with updated data
                    adapter.notifyDataSetChanged();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    System.out.print(error);
                    VolleyLog.d(TAG, "Error: " + error.getMessage());
                    hidePDialog();

                }
            });

这是日志猫

07-30 13:06:47.319: I/PersonaManager(4754): getPersonaService() name persona_policy
07-30 13:06:47.409: E/MoreInfoHPW_ViewGroup(4754): Parent view is not a TextView
07-30 13:06:47.449: D/AbsListView(4754): Get MotionRecognitionManager
07-30 13:06:47.549: D/AbsListView(4754): onVisibilityChanged() is called, visibility : 4
07-30 13:06:47.549: D/AbsListView(4754): unregisterIRListener() is called 
07-30 13:06:47.579: D/AbsListView(4754): onVisibilityChanged() is called, visibility : 0
07-30 13:06:47.579: D/AbsListView(4754): unregisterIRListener() is called 
07-30 13:06:47.664: I/(4754): PLATFORM VERSION : JB-MR-2
07-30 13:06:47.754: D/mali_winsys(4754): new_window_surface returns 0x3000
07-30 13:06:47.769: D/OpenGLRenderer(4754): Enabling debug mode 0
07-30 13:06:47.779: D/ProgressBar(4754): updateDrawableBounds: left = 0
07-30 13:06:47.779: D/ProgressBar(4754): updateDrawableBounds: top = 0
07-30 13:06:47.779: D/ProgressBar(4754): updateDrawableBounds: right = 144
07-30 13:06:47.779: D/ProgressBar(4754): updateDrawableBounds: bottom = 144
07-30 13:06:47.779: D/AbsListView(4754): unregisterIRListener() is called 
07-30 13:06:47.809: D/mali_winsys(4754): new_window_surface returns 0x3000
07-30 13:06:47.834: D/AbsListView(4754): unregisterIRListener() is called 
07-30 13:06:47.904: D/AbsListView(4754): unregisterIRListener() is called 
07-30 13:06:47.979: I/System.out(4754): Thread-6768(HTTPLog):isShipBuild true
07-30 13:06:47.979: I/System.out(4754): Thread-6768(HTTPLog):SmartBonding Enabling is false, SHIP_BUILD is true, log to file is false, DBG is false
07-30 13:06:48.049: D/Volley(4754): [1] 2.onErrorResponse: MainActivity
07-30 13:06:48.064: D/AbsListView(4754): unregisterIRListener() is called 
07-30 13:06:48.069: E/ViewRootImpl(4754): sendUserActionEvent() mView == null

编辑:

我删除了“结果”这个词后,我能够发现错误:

07-30 13:32:41.384: W/System.err(16258): org.json.JSONException: Value
     

[{ “路径”: “http://api.androidhive.info/json/movies/1.jpg”, “注释”:”   非常好“,”描述“:”长篇故事“,”喜欢“:”5“,”名字“:”50个阴影   灰色 “},{” 路径 “:” http://api.androidhive.info/json/movies/2jpg “ ”注释“:”   美丽的 “ ”说明“: ”机器人“, ”喜欢“: ”7“, ”名“: ”变形金刚“},{ ”路径“:” http://api.androidhive.info/json/movies/3。 JPG “ ”评论“:”   哇“,”“描述”:“绿巨人和铁   man“,”喜欢“:”8“,”name“:”Avangeers“}]在0的org.json.JSONArray类型   无法转换为JSONObject

但在我的php中我编辑了这个

echo json_encode(array($result));不应编码吗?

1 个答案:

答案 0 :(得分:1)

实际上你的resposne有两个问题,下面给出了解决方案: -

1.您的resposne不适合 json对象。您的响应最后包含?&gt; ,这会引发解析错误。所以刚从api响应中删除它。

2.你的resposne实际上是一个 json对象。因此,不要使用 JsonArrayRequest ,而是使用 JsonObjectRequest 类。

拥有和平并享受!!!