声明和初始化Sprite数组andengine时出现空指针异常

时间:2015-07-10 11:19:51

标签: java arrays sprite andengine

我在顶部声明了sprite arrray:

private Sprite[] how_to=new Sprite[4];

在createscene方法中,精灵被初始化为:

    how_to[0]=new Sprite(0, 0, resource_manager.how_to_bg_region1, vbx);
    how_to[1]=new Sprite(0, 0, resource_manager.how_to_bg_region2, vbx);
    how_to[2]=new Sprite(0, 0, resource_manager.how_to_bg_region3, vbx);
    how_to[3]=new Sprite(0, 0, resource_manager.how_to_bg_region4, vbx);
    how_to[4]=new Sprite(0, 0, resource_manager.how_to_bg_region5, vbx);

给出空指针异常:

07-10 16:39:27.135: E/AndroidRuntime(778): FATAL EXCEPTION: UpdateThread
07-10 16:39:27.135: E/AndroidRuntime(778): java.lang.NullPointerException
07-10 16:39:27.135: E/AndroidRuntime(778):  at com.example.cotr.How_to.createScene(How_to.java:27)

2 个答案:

答案 0 :(得分:2)

您的数组大小为4.因此您可以初始化从索引0到3开始的4个对象。

如果您想这样做,how_to[4]=new Sprite(0, 0, resource_manager.how_to_bg_region5, vbx);会尝试将数组大小增加到5。

private Sprite[] how_to=new Sprite[5];

答案 1 :(得分:0)

您初始化了一个包含4个元素的数组,并为其分配了5个元素。删除最后一个Sprite

how_to[4]=new Sprite(0, 0, resource_manager.how_to_bg_region5, vbx);