Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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_Parcelable - Fatal编程技术网

Java 试图读取包裹字符串[]的NullPointerException

Java 试图读取包裹字符串[]的NullPointerException,java,android,parcelable,Java,Android,Parcelable,当我试图从中创建对象时读回字符串[]时,我得到了一个NullPointerException。这是我的密码: @Override public void writeToParcel(Parcel out, int flags) { out.writeInt(floors); out.writeStringArray(indoorMaps); } public static final Parcelable.Creator<Building> CREATOR

当我试图从中创建对象时读回
字符串[]
时,我得到了一个NullPointerException。这是我的密码:

@Override
public void writeToParcel(Parcel out, int flags) {
    out.writeInt(floors);
    out.writeStringArray(indoorMaps);

}

public static final Parcelable.Creator<Building> CREATOR
    = new Parcelable.Creator<Building>() {
    public Building createFromParcel(Parcel in) {
        return new Building(in);
    }

public Building[] newArray(int size) {
    return new Building[size];
}
};

private Building(Parcel in) {   
    floors = in.readInt();
    in.readStringArray(indoorMaps);
}
@覆盖
公共无效写入包(包出,内部标志){
出、写(楼层);
out.writeStringArray(indoorMaps);
}
公共静态最终包裹。创建者
=新的Parcelable.Creator(){
公共建筑createFromParcel(地块内){
归还新建筑物(在);
}
公共建筑[]新阵列(整数大小){
归还新建筑[尺寸];
}
};
私人楼宇{
楼层=in.readInt();
in.readStringArray(indoorMaps);
}
所以indoorMaps是我的类的一个属性,它是一个
字符串[]
,但是我得到了NullPointerException。我已经检查了房间,但里面什么也没有。 我跟着他们,他们正在那里使用
readStringArray


有什么建议吗?谢谢

在调用
readStringArray
时,您正在给
包裹
一个
null
数组。要使其工作,您必须初始化
indoorMaps
。您可能需要
createStringArray

请在抛出NullPointerException的代码中添加带高亮显示行的stacktrace。NullPointerException在以下链接中抛出:in.readStringArray(indoorMaps);通过添加indoorMaps=newstring[floors],您是对的;在readStringArray之前,它解决了这个问题。我以为readStringArray是为我做的。谢谢@marimaf:
readStringArray
无法为您分配数组,因为它无法更改引用参数指向的对象
createStringArray
没有引用,而是为您创建了数组。非常感谢。想知道为什么我两天前没有找到你的答案:P