我有一个主要活动和一个带有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”
造成这种情况的原因是什么?
答案 0 :(得分:2)
这是因为您正在构造函数中执行代码。您不应该在Activity
的构造函数中执行任何代码。您应该将所有代码移到Activity#onCreate
。
您应该对Activity Lifecycle非常熟悉。
答案 1 :(得分:0)
这是完整的课吗?如果是这样的话:
onCreate()
方法setContentView(R.layout.my_layout)
答案 2 :(得分:0)
其他人指出您没有遵循Activity
生命周期
R.drawable.deagle
是您的声音文件吗?如果是这样,它不应该在/drawable/
目录中。将其移至/raw/
。
以下是几个示例:Audio and Video,Audio Demo
以下是MediaPlayer
的文档