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

标签 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 元素的属性,并将其副本添加到项目符号列表中。然而,一旦我这样做,应用程序就会崩溃。

这里的线程部分:

// 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   

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

-内森

最佳答案

您需要创建列表:

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

关于java - 将元素添加到列表时 Android 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9730274/

相关文章:

android - 有没有办法在不将其保存到 sdcard 的情况下获取位图的 URI?

list - 如何在grails应用程序的index.gsp中仅列出某些 Controller ?

java - 添加新项目时列表中的项目会被覆盖

JavaFX 播放 mp3

java - 将 fragment 添加到 ViewGroup

java - 无法访问 jsoup

c# - 以简单列表为源的 DataGridView 虚拟模式

java - 在 Java/JavaFX 中实现可以容纳多种数据类型的通用列表

java - 从 Android 中的 FragmentActivity 类访问 Fragment 类方法

java - 在 POST 请求中反序列化 LocalDateTime 时出错