【问题标题】:Null pointer exception in AndEngine SoundManagerAndEngine SoundManager 中的空指针异常
【发布时间】:2011-11-17 12:27:42
【问题描述】:

我刚刚编写了从 AndExample 复制的以下行。

try {
        this.collision_sound = SoundFactory.createSoundFromAsset(this.mEngine.getSoundManager(), this, "touch.ogg");
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        Log.d("Error","in creation "+e);
    }

this.collision_sound.play();

现在的问题是,当我播放声音时,它会给我一个空指针异常。谁能帮我解决这个问题?

【问题讨论】:

    标签: android andengine


    【解决方案1】:

    我终于明白了问题所在。实际上,上面的代码是正确的,我缺少的是,当我创建引擎时,我缺少为加载引擎中的声音设置它的选项。

    new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera).setNeedsSound(true));
    

    这解决了我缺少 .setNeedsSound(true) 选项的问题。

    【讨论】:

      【解决方案2】:

      您的代码似乎没问题。尝试把createsound函数放在AndEngine的onLoad()方法中,在别的地方调用play()方法。我想你没有给引擎时间来设置声音变量。

      【讨论】:

      • 我已经在onLoadEngine中初始化了声音,之前在OnLoadResources中。不幸的是结果是一样的。创建没有错误,但是当我播放声音时出现 NullPointerException。我现在该怎么办?
      • 好吧,我以前从未使用过 .ogg 文件。只是为了尝试,使用通用的 .mp3 并重试。此外,发布您的 logcat。
      猜你喜欢
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      • 2015-07-12
      相关资源
      最近更新 更多