首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取json对象的NullPointerException

获取json对象的NullPointerException
EN

Stack Overflow用户
提问于 2012-06-16 22:16:42
回答 1查看 2.6K关注 0票数 1

在下面的代码中,我一直在JSONObject json = userFunctions.uploadFileData(guid, photoName);行得到NullPointerException错误。我不知道为什么我会得到这个错误。请帮我解决这个问题。

以下是我的代码

下面是发生此错误的方法

代码语言:javascript
运行
复制
public boolean fileData(String guid, String photoName) {
    Toast.makeText(getApplicationContext(), photoName, Toast.LENGTH_LONG).show();

    JSONObject json = userFunctions.uploadFileData(guid, photoName);

    try {
        if(Integer.parseInt(json.getString("success")) != 1) {
            Toast.makeText(getApplicationContext(), json.getInt("error_msg"), Toast.LENGTH_LONG).show();
            //register_error.setText(json.getString("error_msg"));
            return false;
        }
    } catch (NumberFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return true;
}

下面是我的uploadedFileData方法

代码语言:javascript
运行
复制
public JSONObject uploadFileData(String uid, String photoName) {
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("tag", file_tag));
    params.add(new BasicNameValuePair("uid", uid));
    params.add(new BasicNameValuePair("photoName", photoName));
    JSONObject json = jsonParser.getJSONFromUrl(url, params);
    Log.e("Some",json.toString());
    return json;
}

这是我的JSONParser类

代码语言:javascript
运行
复制
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

public JSONParser() {

}

public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {

    try {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));

        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 {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line = null;

        while((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }

        is.close();
        json = sb.toString();
        //Log.e("JSON", json);
    } catch (Exception e) {
        //e.printStackTrace();
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    return jObj;
}
}

这是我的日志

代码语言:javascript
运行
复制
06-16 17:03:47.890: E/AndroidRuntime(12364): FATAL EXCEPTION: main
06-16 17:03:47.890: E/AndroidRuntime(12364): java.lang.NullPointerException
06-16 17:03:47.890: E/AndroidRuntime(12364):    at com.zafar.login.Camera.fileData(Camera.java:216)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at com.zafar.login.Camera$2.run(Camera.java:186)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at android.os.Handler.handleCallback(Handler.java:587)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at android.os.Handler.dispatchMessage(Handler.java:92)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at android.os.Looper.loop(Looper.java:130)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at android.app.ActivityThread.main(ActivityThread.java:3691)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at java.lang.reflect.Method.invokeNative(Native Method)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at java.lang.reflect.Method.invoke(Method.java:507)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
06-16 17:03:47.890: E/AndroidRuntime(12364):    at dalvik.system.NativeStart.main(Native Method)
06-16 17:03:55.115: I/Process(12364): Sending signal. PID: 12364 SIG: 9
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-16 22:22:36

正如在异常堆栈跟踪中一样,userFunctions是(应用程序中)的最后一个函数,因此根据代码,userFunctions可能为null,因为json不可能是原因,因为您在uploadFileData中使用了json.toString(),但跟踪直到出现时才会出现.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11064173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档