Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 构造函数调用中的NullPointerException_Java_Android_Android Studio_Gradle_Nullpointerexception - Fatal编程技术网

Java 构造函数调用中的NullPointerException

Java 构造函数调用中的NullPointerException,java,android,android-studio,gradle,nullpointerexception,Java,Android,Android Studio,Gradle,Nullpointerexception,我正在编写一个android应用程序,我遇到了一个问题。 该应用程序使用双重连接列表。一个活动创建一个记录,并在单击按钮save时调用一个方法,该方法通过列表的add方法传递创建的记录。 它只在第一次工作,然后抛出一个NullPointerException调用List节点的构造函数。 这个错误只发生在安卓系统中,在pc机上运行良好。 下面是代码和抛出的异常 public boolean add(Object data) { boolean control = false; tr

我正在编写一个android应用程序,我遇到了一个问题。 该应用程序使用双重连接列表。一个活动创建一个记录,并在单击按钮save时调用一个方法,该方法通过列表的add方法传递创建的记录。 它只在第一次工作,然后抛出一个NullPointerException调用List节点的构造函数。 这个错误只发生在安卓系统中,在pc机上运行良好。 下面是代码和抛出的异常

public boolean add(Object data) {
    boolean control = false;
    try {
        if (isEmpty()) {
            ListNode newNode = new ListNode(data);
            setFirstNode(newNode);
            setCurrentNode(newNode);
            incrementNumberOfNodes();
            control = true;
        }
        else {
            ListNode newNode = new ListNode(data, currentNode.getNextNode(), currentNode);
            if (currentNode.getNextNode() != null) {
                currentNode.getNextNode().setPreviousNode(newNode);
            }
            currentNode.setNextNode(newNode);
            currentNode = newNode;
            incrementNumberOfNodes();
            control = true;
        }
    } catch (NullPointerException e) {
        System.err.println(e);
    }
    return control;
}


public void save(View v){
    String action = getIntent().getAction();
    if(action.compareTo(GlobalVariables.ACTION_NEW) == 0) {
        newRecord();
        System.out.println("Save finish with new Record");
    }
}

private void newRecord(){
    EditText title = (EditText) findViewById(R.id.title);
    EditText password = (EditText) findViewById(R.id.password);

    int key = GlobalVariables.firstFreePosition();

    Record newRecord = new Record(key,title.getText().toString());
    newRecord.setPassword(password.getText().toString());
    System.out.printf("RECORD CREATO: %s\n", newRecord);

    // Aggiungo il record alla lista
    boolean control = GlobalVariables.recordsList.add(newRecord);
    System.out.println("New Record = " + control);
}
以下是施工人员:

protected ListNode(Object data, ListNode nextNode, ListNode previousNode){
    setData(data);
    setNextNode(nextNode);
    setPreviousNode(previousNode);
}
下面是一个例外(list.java的第120行是list节点construction的调用):

请帮帮我。
谢谢。

请添加实际的相关代码@JerryF我希望您没有使用扩展ListNodeActivity@bcsb1001我确信我传递给add方法的记录不是空的,因为我在传递给add之前已经尝试过戳。@Marcelo您想看哪段代码?
09-09 21:27:39.711  19605-19605/cf.portaChiavi E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
Caused by: java.lang.NullPointerException
        at cf.list.List.add(List.java:120)
        at cf.portaChiavi.NewRecord.newRecord(NewRecord.java:161)
        at cf.portaChiavi.NewRecord.save(NewRecord.java:90)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)