关于Android部分代码能在模拟器上运行,但在手机上出错

最近在写一个APP,但部分代码能在模拟器上运行,却不能在真机上运行,直接抛出异常,而且是个十分简单的代码。代码如下:

 Runnable updateThread = new Runnable(){  
            //将要执行的操作写在线程对象的run方法当中  
            public void run(){  
                try{

                byte[] bytes1 = Autils.download(url);
                System.out.println("--0--");

                String json1 = new String (bytes1,"utf-8");//这行代码在真机上直接异常
                System.out.println("--1--");

                JSONObject obj1 = new JSONObject(json1);
                JSONArray array1 = obj1.getJSONArray("asd0");
                if (JSON.parseArray(array1.toString(),navi_hp_info.class)!=null){
                    data.clear();
                data.addAll(JSON.parseArray(array1.toString(),navi_hp_info.class));
                }else{
                    data.addAll(JSON.parseArray(array1.toString(),navi_hp_info.class));
                }

                handler.obtainMessage(1, data).sendToTarget();
                }catch (Exception e) {
                    // TODO: handle exception
                    e.printStackTrace();
                    handler.obtainMessage(2, data).sendToTarget();
                }

                handler.postDelayed(updateThread, 1000);  
            }  
        }; 

明明很简单很正常的一句代码为什么会错呢?

调度看看 bytes1 的返回数据吧
怀疑是 bytes1 为空了,或直接是无效的数据。

得看这行代码返回值
byte[] bytes1 = Autils.download(url);//这个函数里面是什么过程,url是什么地址,这不简单。如果url是本机地址的话,那虚拟机和真机差别就大了。