1

次のエラーが発生しました。java.lang.NullPointerException: lock == null while get json file from server.I googled が、これに対する解決策を見つけることができません。

私のコード:

try {
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);

            Log.i("clock", httpPost.getURI().toString());
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();           

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            Log.i("Buffer", "1");
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            Log.i("Buffer", "2");
            StringBuilder sb = new StringBuilder();
            Log.i("Buffer", "3");
            String line = null;
            Log.i("Buffer", "4");
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            Log.i("Buffer", "5");
            json = sb.toString();
            Log.i("Buffer", "6->"+json);
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result-> " + e.toString());
        }

ログキャット:

ここに画像の説明を入力

4

3 に答える 3

3

いつでも使用する前に、常に確認する必要がありinstance/ java objectます。not null

例えば。

if( httpResponse != null){
    //todo your work here with "httpResponse "
}

if(is !=null){
   //todo your work here with "is"
}

サーバーと通信する場合のコード例を次に示します

// this method takes URL as input and returns JSON data 
//parent class name is "NewWebHelper.java"

public String getResult(String url) {

        Log.v(TAG, "Final Requsting URL is : :"+url);

        String line = "";
        String responseJsonData = null;

        try {
            StringBuilder sb = new StringBuilder();
            String x = "";
            URL httpurl = new URL(url);
            URLConnection  tc= httpurl.openConnection();   

            BufferedReader in = new BufferedReader(
                              new InputStreamReader(tc.getInputStream()));

            if(in !=null){
                while ((line = in.readLine()) != null) {
                sb.append(line + "\n");
                x = sb.toString();
            }
            responseJsonData = new String(x);

            }
        }
        catch (UnknownHostException uh){            
            Log.v("NewWebHelper", "Unknown host :");
            uh.printStackTrace();
        }
       catch (FileNotFoundException e) {
           Log.v("NewWebHelper", "FileNotFoundException :");
            e.printStackTrace();
         }
        catch (IOException e) {
            Log.v("NewWebHelper", "IOException :");
            e.printStackTrace();
        }
      catch (Exception e) {
          Log.v("NewWebHelper", "Exception :");
            e.printStackTrace();
        }
        return responseJsonData;
    }

これを再評価するのに問題がある場合はお知らせください。

于 2012-12-06T10:45:29.073 に答える
2

例えば:

        JSONObject jRoot = new JSONObject(json);
        if (!jRoot.isNull("response")) {

            JSONObject jChat = jRoot.getJSONObject("response");

            if (!jChat.isNull("type")) {
                ch.setType(jChat.getString("type"));
            }

使用機能isNullまたは使用条件if (is != null)

于 2012-12-06T11:00:20.790 に答える