你这是空异常,应该是JSON为空造成的,检查一下是否服务器返回了正确的JSON,然后看看有没有网络连接异常。

解决方案 »

  1.   

    我已经加了判断,如果是空,就返回我给定的这个数组,你看一下我源码,谢谢

    public final static String[] imageUrlsOfBIL() {
    GetJson urlimage = new GetJson();
    if(urlimage.getStrings(urlimage.jsonType("BIL"))==null)
    {
     final String[] test = new String[] {
    "http://b268.photo.store.qq.com/psb?/V116Z8Jx12bQOL/Yy5CuxGLYrfNYQGlgOELGsFTlFTesSSvj5qBNwbUPdo!/b/dPikwJ*iIAAA&bo=WAIgAwAAAAABAF4!&rf=photoDetail",
    "http://b268.photo.store.qq.com/psb?/V116Z8Jx12bQOL/Yy5CuxGLYrfNYQGlgOELGsFTlFTesSSvj5qBNwbUPdo!/b/dPikwJ*iIAAA&bo=WAIgAwAAAAABAF4!&rf=photoDetail",
    "http://b228.photo.store.qq.com/psb?/V116Z8Jx12bQOL/.3xnkX57HGyxDB*igkiYx*xjnwuSSa00ZohC0*nFjCo!/b/dFlC8ocILQAA&bo=gAJYAwAAAAAKAPU!&rf=photoDetail",
    "http://b233.photo.store.qq.com/psb?/V116Z8Jx12bQOL/DhBmngo1u3sRXYgvZR3MVVdghxGiEefUeACM1N9*ts4!/b/dNs77Yq5KAAA&bo=gAJ*AwAAAAAKANI!&rf=photoDetail",
    "http://b229.photo.store.qq.com/psb?/V116Z8Jx12bQOL/0mg2WV4Q5rh5pgiLWonSN8fwzNqJr1O0dI.BA7hA3hU!/b/dJd7kogBJQAA&bo=gAJYAwAAAAAKAPU!&rf=photoDetail",
    "http://b228.photo.store.qq.com/psb?/V116Z8Jx12bQOL/C6ap*ExKPtoyiBXcmMJsDg0UE8E1huVJ8w8.Sad5jlQ!/b/dE2q6ocYLQAA&bo=gALeAQAAAAABAHo!&rf=photoDetail",
    "http://b228.photo.store.qq.com/psb?/V116Z8Jx12bQOL/C6ap*ExKPtoyiBXcmMJsDg0UE8E1huVJ8w8.Sad5jlQ!/b/dE2q6ocYLQAA&bo=gALeAQAAAAABAHo!&rf=photoDetail",
    "http://b269.photo.store.qq.com/psb?/V116Z8Jx12bQOL/yrepKOjK71F2.MGsuZo8.YDm*Gvpawf0n8lAMIzEHGs!/b/dExAXKDqGQAA&bo=zwGAAgAAAAABAGs!&rf=photoDetail",
    "http://b259.photo.store.qq.com/psb?/V116Z8Jx12bQOL/rlydZygqs9P9OKladeHBsedBwW.9N81mNgPwP8uGM0w!/b/dKeMbJpEFQAA&bo=qQEDAgAAAAADAIw!&rf=photoDetail",
    "http://b259.photo.store.qq.com/psb?/V116Z8Jx12bQOL/ts.D1gWgnS.7PdJvGdTq1lkV.YqOvykQjat2O9vnSEk!/b/dOVoZpo6IQAA&bo=gAJVAwAAAAABAPM!&rf=photoDetail",
    "http://b269.photo.store.qq.com/psb?/V116Z8Jx12bQOL/Y2agxCf.HtcRVhymB6*CUxfR0d.Nars8dJ12gFpgkoc!/b/dJHYYKBRJQAA&bo=gAJVAwAAAAABAPM!&rf=photoDetail",
    "http://b269.photo.store.qq.com/psb?/V116Z8Jx12bQOL/ut9IaqogexhDtki3QdSBzn0bJFPVmULaF9qsrUT.FzY!/b/dL5qX6BEJQAA&bo=gAJVAwAAAAABAPM!&rf=photoDetail&rf=photoDetail",
    "http://www.dazhihui008.cn/pic.asp?url=http://img01.mopimg.cn/xianyang/forum/201305/16/115549af37ij4t4i2l6f4u.gif",
    };
    return test;
    }
    else 
    {
    return urlimage.getStrings(urlimage.jsonType("BIL"));
    }
    }
    }这个是报错
    12-23 22:04:50.448: D/AndroidRuntime(1061): Shutting down VM
    12-23 22:04:50.448: W/dalvikvm(1061): threadid=1: thread exiting with uncaught exception (group=0xb3a75b90)
    12-23 22:04:50.678: D/com.umeng.common.b(1061): Could not get location from GPS or Cell-id, lack ACCESS_COARSE_LOCATION or ACCESS_COARSE_LOCATION permission?
    12-23 22:04:50.698: D/MobclickAgent(1061): cache buffer success
    12-23 22:04:50.768: E/AndroidRuntime(1061): FATAL EXCEPTION: main
    12-23 22:04:50.768: E/AndroidRuntime(1061): Process: com.PicGenie, PID: 1061
    12-23 22:04:50.768: E/AndroidRuntime(1061): java.lang.NullPointerException
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at com.entity.GetJson.jsonType(GetJson.java:171)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at com.example.photowallfallsdemo.ImagesBIL.imageUrlsOfBIL(ImagesBIL.java:9)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at com.example.photowallfallsdemo.MyScrollViewBIL.loadMoreImages(MyScrollViewBIL.java:198)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at com.example.photowallfallsdemo.MyScrollViewBIL.onLayout(MyScrollViewBIL.java:174)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.View.layout(View.java:14785)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.View.layout(View.java:14785)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.View.layout(View.java:14785)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.View.layout(View.java:14785)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.View.layout(View.java:14785)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1985)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1742)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5582)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.Choreographer.doCallbacks(Choreographer.java:562)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.Choreographer.doFrame(Choreographer.java:532)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.os.Handler.handleCallback(Handler.java:733)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.os.Handler.dispatchMessage(Handler.java:95)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.os.Looper.loop(Looper.java:137)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at android.app.ActivityThread.main(ActivityThread.java:4998)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at java.lang.reflect.Method.invokeNative(Native Method)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at java.lang.reflect.Method.invoke(Method.java:515)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
    12-23 22:04:50.768: E/AndroidRuntime(1061):  at dalvik.system.NativeStart.main(Native Method)
    12-23 22:04:51.008: D/dalvikvm(1061): GC_FOR_ALLOC freed 360K, 22% free 15719K/20048K, paused 95ms, total 101ms
      

  2.   

    空异常,确定得到了JSON数据是正确的? 
      

  3.   

    很可能是JSON数据格式的问题,你最好在控制台输出下
      

  4.   

    01-02 04:01:25.280: I/System.out(1143): 发送POST请求出现异常!android.os.NetworkOnMainThreadException
    01-02 04:01:25.280: W/System.err(1143): android.os.NetworkOnMainThreadException
    01-02 04:01:25.390: W/System.err(1143):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
    01-02 04:01:25.390: W/System.err(1143):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
    01-02 04:01:25.390: W/System.err(1143):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
    01-02 04:01:25.400: W/System.err(1143):  at libcore.io.IoBridge.connect(IoBridge.java:112)
    01-02 04:01:25.400: W/System.err(1143):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    01-02 04:01:25.400: W/System.err(1143):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
    01-02 04:01:25.400: W/System.err(1143):  at java.net.Socket.connect(Socket.java:843)
    01-02 04:01:25.460: W/System.err(1143):  at com.android.okhttp.internal.Platform.connectSocket(Platform.java:131)
    01-02 04:01:25.460: W/System.err(1143):  at com.android.okhttp.Connection.connect(Connection.java:101)
    01-02 04:01:25.510: W/System.err(1143):  at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294)
    01-02 04:01:25.510: W/System.err(1143):  at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
    01-02 04:01:25.510: W/System.err(1143):  at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
    01-02 04:01:25.520: W/System.err(1143):  at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
    01-02 04:01:25.520: W/System.err(1143):  at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
    01-02 04:01:25.530: W/System.err(1143):  at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197)
    01-02 04:01:25.530: W/System.err(1143):  at com.entity.GetPostUtil.sendPost(GetPostUtil.java:106)
    01-02 04:01:25.530: W/System.err(1143):  at com.entity.GetJson.jsonType(GetJson.java:161)
    01-02 04:01:25.530: W/System.err(1143):  at com.example.photowallfallsdemo.ImagesBIL.imageUrlsOfBIL(ImagesBIL.java:9)
    01-02 04:01:25.530: W/System.err(1143):  at com.example.photowallfallsdemo.MyScrollViewBIL.loadMoreImages(MyScrollViewBIL.java:198)
    01-02 04:01:25.580: W/System.err(1143):  at com.example.photowallfallsdemo.MyScrollViewBIL.onLayout(MyScrollViewBIL.java:174)
    01-02 04:01:25.580: W/System.err(1143):  at android.view.View.layout(View.java:14785)
    01-02 04:01:25.580: W/System.err(1143):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    01-02 04:01:25.600: I/Choreographer(360): Skipped 70 frames!  The application may be doing too much work on its main thread.
    01-02 04:01:25.670: W/System.err(1143):  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
    01-02 04:01:25.670: W/System.err(1143):  at android.view.View.layout(View.java:14785)
    01-02 04:01:25.680: W/System.err(1143):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    01-02 04:01:25.680: W/System.err(1143):  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
    01-02 04:01:25.680: W/System.err(1143):  at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
    01-02 04:01:25.780: W/System.err(1143):  at android.view.View.layout(View.java:14785)
    01-02 04:01:25.780: W/System.err(1143):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    01-02 04:01:25.780: W/System.err(1143):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
    01-02 04:01:25.840: W/System.err(1143):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
    01-02 04:01:25.840: W/System.err(1143):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
    01-02 04:01:25.850: W/System.err(1143):  at android.view.View.layout(View.java:14785)
    01-02 04:01:25.850: W/System.err(1143):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    01-02 04:01:25.850: W/System.err(1143):  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
    01-02 04:01:25.850: W/System.err(1143):  at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
    01-02 04:01:25.860: W/System.err(1143):  at android.view.View.layout(View.java:14785)
    01-02 04:01:25.860: W/System.err(1143):  at android.view.ViewGroup.layout(ViewGroup.java:4631)
    01-02 04:01:25.860: W/System.err(1143):  at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1985)
    01-02 04:01:25.860: W/System.err(1143):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1742)
    01-02 04:01:25.870: W/System.err(1143):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
    01-02 04:01:25.870: W/System.err(1143):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5582)
    01-02 04:01:25.880: I/Choreographer(360): Skipped 36 frames!  The application may be doing too much work on its main thread.
    01-02 04:01:25.950: W/System.err(1143):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
    01-02 04:01:25.950: W/System.err(1143):  at android.view.Choreographer.doCallbacks(Choreographer.java:562)
    01-02 04:01:26.030: W/System.err(1143):  at android.view.Choreographer.doFrame(Choreographer.java:532)
    01-02 04:01:26.040: W/System.err(1143):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
    01-02 04:01:26.090: W/System.err(1143):  at android.os.Handler.handleCallback(Handler.java:733)
    01-02 04:01:26.120: W/System.err(1143):  at android.os.Handler.dispatchMessage(Handler.java:95)
    01-02 04:01:26.120: W/System.err(1143):  at android.os.Looper.loop(Looper.java:137)
    01-02 04:01:26.120: W/System.err(1143):  at android.app.ActivityThread.main(ActivityThread.java:4998)
    01-02 04:01:26.120: W/System.err(1143):  at java.lang.reflect.Method.invokeNative(Native Method)
    01-02 04:01:26.120: W/System.err(1143):  at java.lang.reflect.Method.invoke(Method.java:515)
    01-02 04:01:26.140: I/Choreographer(360): Skipped 35 frames!  The application may be doing too much work on its main thread.
    01-02 04:01:26.240: W/System.err(1143):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
    01-02 04:01:26.240: W/System.err(1143):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
    01-02 04:01:26.260: W/System.err(1143):  at dalvik.system.NativeStart.main(Native Method)
    01-02 04:01:26.260: W/System.err(1143): org.json.JSONException: End of input at character 0 of 以下是请求的代码部分
    public List<FilesEntity> jsonType(String type){
    List<FilesEntity> filesEntities = new ArrayList<FilesEntity>();
    String params = "type=\""+type+"\"";
    String url = "http://192.168.0.106:8080/androidServlet/servlet/TypeServlet";
    String finish = GetPostUtil.sendPost(url, params);

    JSONArray jsonArray = null;

    try {
    jsonArray = new JSONArray(finish);
    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    for(int i=0;i<jsonArray.length();i++ ){

    JSONObject jsonObject = null;
    try {
    List<String> list = new ArrayList<String>();
    jsonObject = jsonArray.getJSONObject(i);
    FilesEntity filesEntity = new FilesEntity();
    JSONArray jsonArray2 = new JSONArray(jsonObject.getString("review"));
    for(int j=0;j<jsonArray2.length();j++){

    JSONObject jsonObject2 = jsonArray2.getJSONObject(j);
    list.add(jsonObject2.getString("review"+j));

    }
    filesEntity.setUrl(jsonObject.getString("url"));
    filesEntity.setExplains(jsonObject.getString("explains"));
    filesEntity.setFavoritenum(jsonObject.getLong("Favoritenum"));
    filesEntity.setReviewList(list);
    filesEntities.add(filesEntity);
    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    return filesEntities;
    }
      

  5.   

    你查看数据包了吗 服务器返回的数据是什么 
    adb shell tcpdump -s 0 -w /data/xxx.pcap
      

  6.   

    你这问题估计是在主线程里请求了http
    看见android.os.NetworkOnMainThreadException了么?用线程去访问网络。别放在主线程里。
      

  7.   

    我改成了这样
    new Thread(){
    public void run() {
    @SuppressWarnings("unused")
    String[] next = urlimage.getStrings(urlimage.jsonType("BIL"));
    }
    }.start();

    不过报错是这样的
    01-03 20:13:38.696: E/AndroidRuntime(1307): FATAL EXCEPTION: main
    01-03 20:13:38.696: E/AndroidRuntime(1307): Process: com.PicGenie, PID: 1307
    01-03 20:13:38.696: E/AndroidRuntime(1307): java.lang.NullPointerException
    01-03 20:13:38.696: E/AndroidRuntime(1307):  at com.entity.GetJson.jsonType(GetJson.java:171)
    01-03 20:13:38.696: E/AndroidRuntime(1307):  at com.example.photowallfallsdemo.ImagesBIL.imageUrlsOfBIL(ImagesBIL.java:21)
    01-03 20:13:38.696: E/AndroidRuntime(1307):  at com.example.photowallfallsdemo.MyScrollViewBIL.loadMoreImages(MyScrollViewBIL.java:198)
    01-03 20:13:38.696: E/AndroidRuntime(1307):  at com.example.photowallfallsdemo.MyScrollViewBIL.onLayout(MyScrollViewBIL.java:174)
    出现错误的四个地方是这四个
    GetJson171************
    for(int i=0;i<jsonArray.length();i++ ){

    JSONObject jsonObject = null;
    try {
    List<String> list = new ArrayList<String>();
    jsonObject = jsonArray.getJSONObject(i);
    FilesEntity filesEntity = new FilesEntity();
    JSONArray jsonArray2 = new JSONArray(jsonObject.getString("review"));
    for(int j=0;j<jsonArray2.length();j++){

    JSONObject jsonObject2 = jsonArray2.getJSONObject(j);
    list.add(jsonObject2.getString("review"+j));

    }
    ImageBIL.java21***********
    public final static String[] imageUrlsOfBIL() {
    final GetJson urlimage = new GetJson();
    String[] next = null;
    new Thread(){
    public void run() {
    @SuppressWarnings("unused")
    String[] next = urlimage.getStrings(urlimage.jsonType("BIL"));
    }
    }.start();

    return urlimage.getStrings(urlimage.jsonType("BIL"));
    }
    MyScrollView****************
    public void loadMoreImages() {
    if (hasSDCard()) {
    int startIndex = page * PAGE_SIZE;
    int endIndex = page * PAGE_SIZE + PAGE_SIZE;
    if (startIndex < ImagesBIL.imageUrlsOfBIL().length) {
    Toast.makeText(getContext(), "Loading...", Toast.LENGTH_SHORT).show();
    if (endIndex > ImagesBIL.imageUrlsOfBIL().length) {
    endIndex = ImagesBIL.imageUrlsOfBIL().length;
    }
    for (int i = startIndex; i < endIndex; i++) {
    LoadImageTask task = new LoadImageTask();
    taskCollection.add(task);
    task.execute(i);
    }
    page++;最后一个
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);
    if (changed && !loadOnce) {
    scrollViewHeight = getHeight();
    scrollLayout = getChildAt(0);
    firstColumn = (LinearLayout) findViewById(R.id.first_column);
    secondColumn = (LinearLayout) findViewById(R.id.second_column);
    columnWidth = firstColumn.getWidth();
    loadOnce = true;
    loadMoreImages();
    }
      

  8.   

    很明显吗,JSON解析错误。
    1:Bean类的数据机构构造错误。
    2:前后台字段没对上。把取回来的Json串打印一下,然后按后台的数据结构构造Bean类,字段对应上不就OK了吗。