元素添加到列表时Android应用程序崩溃

时间:2012-03-16 00:37:43

标签: java android list android-canvas surfaceholder

我有一个列表,其中定义了一个元素:

public List<Bullet> Bullets;
Bullet newBullet = new Bullet(0, 0, 0, 0, 0, 0, 0, 0);

当按下屏幕按钮时,我运行:

 newBullet.setProperties((int)(CannonCenterX + CannonEndX), (int)(CannonCenterY + CannonEndY), (int)(25*scaleX), (int)(25*scaleY), CannonEndX, CannonEndY, screenWidth, screenHeight);
 Bullets.add(newBullet);

这应该改变newBullet元素的属性,并将其副本添加到Bullet List中。但是,一旦我这样做,应用程序崩溃。

此处的线程部分:

// try locking the canvas for exclusive pixel editing on the surface
        try {
            canvas = this.surfaceHolder.lockCanvas();
            synchronized (surfaceHolder) {
                // update game state
                this.gamePanel.update();

                // draws the canvas on the panel
                this.gamePanel.onDraw(canvas);
            }
        } finally {
            // in case of an exception the surface is not left in
            // an inconsistent state
            if (canvas != null) {
                surfaceHolder.unlockCanvasAndPost(canvas);
            }
        }   // end finally   

生成异常并关闭程序。我不知道为什么将已生成的元素添加到列表会导致程序崩溃。任何帮助表示赞赏。

-Nathan

1 个答案:

答案 0 :(得分:1)

您需要创建列表:

public List<Bullet> Bullets = new ArrayList<Bullet>();