Кнопка Android назад не работает

Я использую cocos2dx, чтобы сделать небольшую игру, и в своей игре я даю следующие функции для обработки кнопки возврата.

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); } @Override public void onDestroy() { android.os.Process.killProcess(android.os.Process.myPid()); super.onDestroy(); } 

При нажатии кнопки «Назад» я получаю следующее предупреждение в своем логарифме

Не удается открыть файл keycharmap

Ошибка загрузки файла keycharmap '/system/usr/keychars/qtouch-touchscreen.kcm.bin'. hw.keyboards.65538.devname = 'QTouch-сенсорный экран'

Вызов не достигает функцийKeyDown или onDestroy.

Пожалуйста, скажите мне, почему это предупреждение вызвано, и почему я не могу обработать кнопку андроида назад.

Функции отлично работают на моем проекте java android, но не в моем проекте cocos2d-x

Он обрабатывается здесь в файле Cocos2dxGLSurfaceView.java

Измените его ниже, где myActivity – это cocos2dActicity

  case KeyEvent.KEYCODE_BACK: AlertDialog ad = new AlertDialog.Builder(myActivity) .setTitle("EXIT?") .setMessage("Do you really want to exit?") .setPositiveButton("YES", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { ((Cocos2dxActivity)myActivity).finish(); } }) .setNegativeButton("NO", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }).create(); ad.show(); return true; case KeyEvent.KEYCODE_MENU: 

Чтобы обращаться с нажатием кнопки «Назад», вам необходимо переопределить onBackPressed() вашей деятельности, а не два этих метода.

Только ваши приложения реализуют метод переопределения для onKeyDown,

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) { // Here to implements for your code. Log.d(TAG, "KEYCODE_BACK"); } return super.onKeyDown(keyCode, event); } 

Вы включили прикосновение? Если нет, то, пожалуйста, включите его, и Надеюсь, это разобратся с вашей проблемой.

Я предполагаю, что это кнопка на вашем игровом экране.

Вот обновление для Cocos2d-x версии 3+

На это ответили просто (и работает) здесь

А также чуть менее полную youtube здесь