8

每次打开我的 Optionsmenu(调用 onCreateOptionsMenu(..))时,我都会收到以下警告:

“没有 id 0 的键盘”

“使用默认键映射:/system/usr/keychars/qwerty.kcm.bin”

没看懂是什么意思,有人知道吗?我不喜欢这个答案

这是我正在使用的简单代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.optmenu_start, menu);
    return true;
}

和 optmenu_start.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:id="@+id/optmenu_prefs"
    android:title="@string/optmenu_prefs"
    android:icon="@drawable/icon_menu_prefs"
  />
  <item
    android:id="@+id/optmenu_help"
    android:title="@string/optmenu_help"
    android:icon="@drawable/icon_menu_help"
  />
</menu>
4

2 回答 2

13

谷歌的答案是

" 日志是正常的;它在进程中的设备第一次需要键盘映射时发生。"

http://groups.google.com/group/android-developers/browse_thread/thread/477caf755085b108

因此,如果您在 Activity1 之前启动 Activity2,您会在 Activity2 中看到警告,而不是在 Activity1 中!

正如我所说,我认为很多开发人员都会收到此消息,这只是警告而不是错误;可以忽略。

于 2011-06-12T16:07:09.497 回答
1

正如@Blundell 所说,这很正常。但它总是消耗第一个 keyPressed 事件。最后,我在 init 中添加:

setFocusableInTouchMode(true);

我不知道为什么,但这个警告信息再也不会让我烦恼了。

于 2015-04-28T03:34:09.537 回答