首页 > 解决方案 > cn1 - 尝试在空对象引用上调用虚拟方法“boolean java.util.ArrayList.add(java.lang.Object)”

问题描述

我抛出了一个错误,我无法弄清楚它是如何发生的。它不会一直发生,而是偶尔发生。抛出的错误消息是“Java.lang.nullPointerException:尝试在空对象引用上调用虚拟方法'boolean java.util.ArrayList.add(java.lang.Object)'”。我已经使用 connectionRequest 来解析 json 数据。抛出错误时,我检查了 url 中是否存在问题,但它一如既往地提供了正确的 json 数据。尝试几次后,错误自动解决。

if (!regNOField.getText().equals("") && !newPasswordField.getText().equals("")) {
    ArrayList<Map<String, String>> argumentsArrayList = new ArrayList<>();

    Map argumentMap1 = new HashMap();
    argumentMap1.put("argument", "reg_no");
    argumentMap1.put("value", regNOField.getText().trim());
    argumentsArrayList.add(argumentMap1);

    Map argumentMap2 = new HashMap();
    argumentMap2.put("argument", "token");
    argumentMap2.put("value", newPasswordField.getText().trim());
    argumentsArrayList.add(argumentMap2);

    CommonMethod.connectionMethod(res, true, url, "Verification", argumentsArrayList, true, null);
}

CommonMethod.connectionMethod:

public static void connectionMethod(Resources res, Boolean postBoolean, String urlString, String form, ArrayList<Map<String, String>> arguments,
        Boolean ipFlag, String extraData) {
    ConnectionRequest cr = new ConnectionRequest() {

        @Override
        protected void readResponse(InputStream input) throws IOException {
            JSONParser jp = new JSONParser();
            parser = jp.parseJSON(new InputStreamReader(input));
            response = null;
            if (parser != null && !parser.isEmpty()) {
                if (parser.get("status").equals("true")) {
                    message = (String) parser.get("data");
                    ToastBar.getInstance().setPosition(Component.TOP);
                    ToastBar.showErrorMessage(message, 5000);
                    if (form.equals("Verification")) {
                        if (d != null) {
                            d.dispose();
                        }
                        new LoginAndSignUp(res, message).show();
                    }  
                } 
            }
        }

        @Override
        protected void handleErrorResponseCode(int code, String message) {
            System.out.println("login ErrorResponseCode " + code + "msg: " + message);
        }

        @Override
        protected void handleException(Exception err) {
            System.out.println("login Exception " + err);
        }

        @Override
        protected void handleIOException(IOException err) {
            System.out.println("login IOException " + err);
        }

        @Override
        protected void handleRuntimeException(RuntimeException err) {
            System.out.println("RuntimeException " + err);
        }
    };
    cr.setPost(postBoolean);
    cr.setUrl(urlString);
    cr.setTimeout(80000);
    if (arguments != null && !postBoolean.equals(false)) {
        for (Map<String, String> entrySet : arguments) {
            String argument1 = (String) entrySet.get("argument");
            String value1 = (String) entrySet.get("value");
            cr.addArgument(argument1, value1);
        }
    }
    InfiniteProgress ip = new InfiniteProgress();
    d = ip.showInifiniteBlocking();
    cr.setDisposeOnCompletion(d);
    cr.addRequestHeader("accept", "application/json");
    NetworkManager.getInstance().addToQueueAndWait(cr);
}

错误信息:

在此处输入图像描述

标签: codenameone

解决方案


推荐阅读