我在顶部声明了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)
答案 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);