Androidエミュレーターはキーボード入力を受け付けません-SDKツールrev 20


324

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

私は、SDKツール(およびその問題に関してはSDK全体)の再インストールを試み、Eclipse Androidプラグインをアンインストールして再インストールし、エミュレーターデバイスを再作成しました。しかし、どれも役に立たないようで、私を怒らせています。ラップトップのトラックパッドを使用してキー入力することはできません。

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


この副作用として、エミュレータの検索ボタンも機能していないようです。ありがたいことに、キーボードの同じ修正で検索ボタンも修正されます。
bmaupin

私はまた、いくつかのアプリのために私が行かなければならなかったことを発見したExtended Controls> - Send keyboard shortcuts to- >s/Emulator controls (default)/Virtual device/
snapfractalpop

回答:


468

更新

SDK rev 21以降、Android Virtual Device ManagerのUIが改善され、この問題が解決されています。以下で、より重要な構成設定のいくつかを強調しました。

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

元の答え

開発者向けドキュメントでは、キーボードサポートはデフォルトで有効になっていると記載されていますが、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


関連するメモとして、タブレットエミュレータにBACK / HOMEボタンがない場合は、AVDエディタの組み込みスキンとしてWXGA800を選択してみてください。 ここに画像の説明を入力してください

または、config.iniでスキンを手動で設定します。

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

(例はAPI 16の場合)


1
他の回答で述べたように、AVD Managerツールも使用できますが、設定の変更を保存できないバグが発生しました。
James Wald

既存のすべてのAVに影響するグローバル設定はありますか?約20の既存のAVDを変更したくありません。
Hoang Tran

@HoangTranグローバル構成はありませんが、Mac OSを使用している場合は、回答に追加したターミナルコマンドを使用して、既存のすべてのAVDを一度に編集できます。
James Wald、2012

悲しいことに、この解決策は私にはうまくいきませんでした。コマンドを実行した後も、私のavdではキーボードが機能しません。
ジャスティン

1
設定ファイルの編集は私にとってはうまくいきましたが、奇妙なことに、SDKのバージョン21を持っているにもかかわらず、画像に表示されているUIが表示されません。
offby1

112

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

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

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

また、hw.mainKeys = yesを設定する必要があります


19
[AVDの編集]をクリックする前に、値の列がフォーカスを失うことを確認してください。そうしないと、「はい」への変更が保存されません。
Nuthatch

1
こんにちは。上記の手順に従いましたが、PCキーボードを使用してテキストを挿入できません。AVD Managerの下にリストされているAVDをダブルクリックすると、hw.keyboard:yesが示されているため、編集が成功したことがわかります。私は何かを逃していますか?
JibW

3
次のことをお勧めします。AVDを削除し、キーボードサポートを使用して完全に新しいAVDを作成します。
Romin

59

Android StudioでAVD Managerを開きます([ツール]> [Android]> [AVD Manager])。エミュレータの[編集]ボタンをタップします。 ここに画像の説明を入力してください

「詳細設定を表示」を選択します ここに画像の説明を入力してください

「キーボード入力を有効にする」にチェックを入れます ここに画像の説明を入力してください

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


enablinhキーボード入力設定後に私のために働いたが、そもそもそれ自体がどのようにしてそれ自体が機能しなくなったのかと思った。
Justcurious

3
エミュレータが更新されるたびに、このチェックボックスのチェックが外れるほどイライラします:(
Misha Akopov

2
私の場合、キーボードは有効になっていますが、エミュレータでは機能しませんでした。修正は、キーボードを無効にし、エミュレータを起動し、エミュレータを終了し、キーボードを有効にすることです。
凶暴な

15

AVD Managerを確認し、AVDを選択して、[編集]をクリックします。ハードウェアセクション:[新規]をクリックして[キーボードサポート]を検索し、[OK]ボタンで追加して、値を[はい]に設定し、[AVDの編集]で変更を保存します。


奇妙なことに、この値をyesに設定すると、値が強制的にnoに戻り、とにかく新しいデバイスで再びテストされます
epsilonpsi

私はこの答えを好んだ。AVDマネージャーの使用は、config.iniファイルを変更するよりも記憶に残る解決策です。
セス

10

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

したがって、ここで行う必要があるのは、AVDを編集し、ハードウェアセクションに「キーボードサポート」を追加して、値を「はい」に変更することです。


1
私にとってはうまくいきませんでした。avdキーボードサポートの値「yes」は保存されず、「no」に戻ります。
ジャスティン

実際、Googleは物事を改善したいと考えていました。現在、ほとんどのデバイスにはハードウェアキーボードがないため、デフォルトはnone / disabledです。ええ、エミュレータを使って作業する方が簡単ですが、それは実際の状況を反映したものではありません。正しい方法は、開発者が具体的にそれを有効にすることです。
チャーリーコリンズ


2

誰かが便利だと思ったときのために。

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


2

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


0

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


はい、.androidとavdファイルも削除しました。入力ありがとう
イプシロンプシ'28

0

ハードウェアキーボードを使用してAVDを再作成し、ブール値をtrueに設定することが、私にとって有効な唯一のソリューションでした。他の2つの主要なソリューション(ターミナルを使用するか、GUIを介して既存のAVDを編集する)の両方で、Macでソフトウェア/エミュレータがクラッシュしました。新しいAVDを作成すると、キーボードは問題なく動作しました。


0

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

  1. config.ini(任意の名前で可能)の名前をconsssssfig.iniのような名前に変更
  2. エミュレータを再起動しました(明らかに起動しませんでした)
  3. config.iniの名前を再度変更
  4. (適切かどうかはわかりません)config.iniファイルの冒頭にこの新しいパラメーター(hw.keyboard = yes)を追加しました
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.