onTouchEvent()导致“不幸的应用程序已停止”
问题描述:
我正在写一个游戏,您一直按屏幕让一架直升机飞行。现在,当直升机与屏幕边框碰撞(海特&宽度单个设备的)活动由onTouchEvent()导致“不幸的应用程序已停止”
((Activity) context).finish();
当玩家碰撞后快速度停止它的工作原理完全正常完成,但如果他持有的,我得到讨厌的错误。
吴丹。这就是为什么我怀疑的onTouchEvent法
@Override
public boolean onTouchEvent(MotionEvent event) {
// background music
mp.start();
mp.setLooping(true);
copter.setVolume((float) 0.2, (float) 0.2);
if (event.getAction() == MotionEvent.ACTION_DOWN && fuel > 0) {
copter.start();
copter.setLooping(true);
if (!player.getPlaying()) {
player.setPlaying(true);
player.setUp(true);
fuel--;
} else {
player.setUp(true);
fuel--;
}
return true;
}
if (event.getAction() == MotionEvent.ACTION_UP) {
copter.pause();
player.setUp(false);
return true;
}
return super.onTouchEvent(event);
}
是否有某种方式忽略碰撞后TouchEvents?或者OnTouchEvent甚至不是问题?
答
检查活动是空内onTouchEvent()
下面的代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
Activity activity = getActivity();
if(activity != null){
// background music
mp.start();
mp.setLooping(true);
copter.setVolume((float) 0.2, (float) 0.2);
if (event.getAction() == MotionEvent.ACTION_DOWN && fuel > 0) {
copter.start();
copter.setLooping(true);
if (!player.getPlaying()) {
player.setPlaying(true);
player.setUp(true);
fuel--;
} else {
player.setUp(true);
fuel--;
}
return true;
}
if (event.getAction() == MotionEvent.ACTION_UP) {
copter.pause();
player.setUp(false);
return true;
}
return super.onTouchEvent(event);
}
//return super.onTouchEvent(event);
return false;
}
根据你的代码,你应该使用:
if(((Activity)context) != null){
,而不是
Activity activity = getActivity();
if(activity != null){
如果这不是问题,请添加错误堆栈跟踪。
更新
要通过电子邮件发送堆栈跟踪:
Intent mailIntent = new Intent(Intent.ACTION_SENDTO);
mailIntent.setData(Uri.parse("mailto:"));
mailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
mailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
mailIntent.putExtra(Intent.EXTRA_TEXT, stacktraceText);
Intent mailChooserIntent = Intent.createChooser(mailIntent, "Title");
context.startActivity(mailChooserIntent);
无需怀疑什么。去看看你的应用程序日志。在那里你会看到发生碰撞的确切位置。 – Okas
请分享来自logcat的错误堆栈跟踪 – Opiatefuchs