奇怪的力量关闭

时间:2011-01-07 17:19:41

标签: android eclipse audio

我有一个主要活动和一个带有3个不同按钮(三种不同的枪声)的xml文件

因此,当用户点击其中一个按钮时,将播放一个枪声。

这是它的外观 -

public class gunstats extends Activity {

    public gunstats(Bundle onSavedStateInstance) {


        final MediaPlayer mp = MediaPlayer.create(this, R.drawable.deagle);

        Button button3 = (Button)this.findViewById(R.id.button3);
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mp.start();
            }
        });
    }
}

问题是,当我在模拟器中打开应用程序时,它会全部强制关闭。 当我检查logcat时,它会显示“由以下引起:java.lang.InstantiationException:com.gunstats.gunstats”

造成这种情况的原因是什么?

3 个答案:

答案 0 :(得分:2)

这是因为您正在构造函数中执行代码。您不应该在Activity的构造函数中执行任何代码。您应该将所有代码移到Activity#onCreate

您应该对Activity Lifecycle非常熟悉。

答案 1 :(得分:0)

这是完整的课吗?如果是这样的话:

  1. 一个Activity没有构造函数(至少你不应该触摸)
  2. 您需要实施onCreate()方法
  3. 您无法使用setContentView(R.layout.my_layout)
  4. 设置内容

答案 2 :(得分:0)

其他人指出您没有遵循Activity生命周期 R.drawable.deagle是您的声音文件吗?如果是这样,它不应该在/drawable/目录中。将其移至/raw/

之类的位置

以下是几个示例:Audio and VideoAudio Demo

以下是MediaPlayer

的文档