web-dev-qa-db-ja.com

Androidエミュレータがキーボード入力を受け取らない - SDKツールrev 20

私はSDKツールをリビジョン20(18から)にアップグレードしました、そしてアップグレード以来、エミュレータはラップトップのキーボードからの入力を受け付けないようです。ただし、エミュレータ独自の「ソフト」キーボード(入力フィールドにフォーカスがあるときに表示されます)を使用するだけです。

私はSDKツール(そしてそれに関するSDK全体)を再インストールし、Eclipse Androidプラグインをアンインストールして再インストールし、エミュレータデバイスを再作成してみました。しかし、そのどれも助けにならないようで、それが私を怒らせます。ラップトップのトラックパッドを使ってキー入力するのは絶望的だ。

誰かがこの問題に遭遇しましたか?

315
epsilonpsi

更新

SDK rev 21以降、Android仮想デバイスマネージャのUIが改善され、この問題が解決しました。私は以下でより重要な設定のいくつかを強調しました:

enter image description here

ソフト(スクリーンベース)のメインキーBackHomeなどがエミュレータにないことに気付いた場合、それらを有効にするためにhw.mainKeys=noを設定することができます。

enter image description here

元の答え

開発者向けのドキュメントにはデフォルトでキーボードサポートが有効になっていると書かれていますが、SDK rev 20ではそうではないようです。私はエミュレータのconfig.iniファイルでキーボードサポートを明示的に有効にしました。

追加:hw.keyboard=yes

宛先:~/.Android/avd/<emulator-device-name>.avd/config.ini

同様に、アプリケーションリストをナビゲートするために矢印キーを使用したい場合はhw.dPad=yesを追加してください。

参照: http://developer.Android.com/tools/devices/managing-avds-cmdline.html#hardwareopts

Mac OSおよびLinuxでは、1つのターミナルコマンドですべてのエミュレータ設定を編集できます。

for f in ~/.Android/avd/*.avd/config.ini; do echo 'hw.keyboard=yes' >> "$f"; done


関連するメモとして、タブレットエミュレータに[戻る]/[ホーム]ボタンがない場合は、AVDエディタの組み込みスキンとしてWXGA800を選択してみてください。 enter image description here

またはconfig.iniでスキンを手動で設定することによっても可能です。

skin.name=WXGA800
skin.path=platforms/Android-16/skins/WXGA800

(例はAPI 16用です)

459
James Wald

確認しました。 Toolsバージョン20にアップグレードした後も同じ問題がありました。次のようにAVDを編集してオプションを追加する必要がありました。

  1. Eclipseから、AVD Manangerにアクセスしてください。
  2. 特定のAVDを選択して編集をクリック
  3. ハードウェアセクションに行き、新規をクリックします。
  4. プロパティ名を選択します。キーボードサポート
  5. デフォルトでは、 'no'の値で追加されます。値の列をクリックして「はい」に変更するだけです。
  6. もう一度AVDの編集をクリックしてください。

これにより、AVDのconfig.iniファイルにhw.keyboard = yesというプロパティが追加されます。

Hw.mainKeys = yesも設定する必要があります

111
Romin

Android Studioで、AVD Managerを開きます([Tools]> [Android]> [AVD Manager])。エミュレータの編集ボタンをタップします。 enter image description here

[詳細設定を表示]を選択します enter image description here

「キーボード入力を有効にする」にチェックを入れます enter image description here

[完了]をクリックしてエミュレータを起動し、キーボード入力を楽しんでください。

58
Hong

AVDマネージャを見てAVDを選択し、編集をクリックしてください。 [ハードウェア]セクションで、[新規]をクリックして[キーボードサポート]を検索し、[OK]ボタンで追加して値を[はい]に設定し、[編集AVD]で変更を保存します。

15
Joel Pelaez

グーグルは開発者にもう少し頭痛を与えたいと思った。

それで、あなたが今しなければならないことはあなたのAVDを編集してそれのための「キーボードサポート」をハードウェアセクションに追加しそして値を「はい」に変えることです

10
Vincy

あなたのホームフォルダ/.Android/avd//config.iniにhw.keyboard = yesという行を追加してください。

4
Amit Yaron

キーボード入力がAndroid仮想デバイスで有効になっているにもかかわらず、エミュレータを再起動すると入力ができない場合に便利です。

2
Zon

念のために誰かがそれが便利だと思った。

TrackBallに属しているKEYCODE_DPAD_UPに問題がありました。この変更を解決するには、avdfolder /config.ini hw.trackBall = yesを押して、DELキーまたはF6キーを押します。

1
PbxMan

あなたのユーザのホームフォルダで隠された.Androidフォルダを探してください。このフォルダの名前を変更するか削除し、AVDを再作成してからエミュレータを再起動してください。そのフォルダに.iniファイルがあり、その設定が変更されている可能性があります。

0
Eric Cloninger

Hardware Keyboard +でAVDを再作成し、ブール値をtrueに設定することが私にとっては有効な唯一の解決策でした。他の2つの主な解決策(端末による、またはGUIを介した既存のAVDの編集)は、どちらも私のMac上でソフトウェア/エミュレータのクラッシュを引き起こしました。新しいAVDを作成してもキーボードは正常に動作しました。

0
Davek804

これは実際に私のために働いたいくつかの回避策です、それは最も人気のある答えと同じ解決策です - ちょうどconfig.iniにhw.keyboard = yesを追加してください、しかしこれはうまくいかなかったので私のために私はさらに

  1. config.iniをconsssssfig.iniのような名前に変更
  2. エミュレータを再起動した(明らかに起動しなかった)
  3. config.iniの名前を元に戻す
  4. (関連があるかどうかわからない)config.iniファイルの最初にこの新しいパラメータ(hw.keyboard = yes)を追加しました。
0
Witold