Android模拟器不接受键盘输入-SDK tools rev 20


324

我已经将SDK工具升级到了20版(从18版),并且自升级以来,该仿真器似乎不接受笔记本电脑键盘的输入。但是只能使用仿真器自己的“软”键盘(当输入字段聚焦时显示)。

我尝试过重新安装SDK工具(以及整个SDK),卸载并重新安装了Eclipse Android插件,重新创建了模拟器设备。但是,这些似乎都无济于事,并且让我发疯。使用笔记本电脑的触控板键入密码毫无希望。

有没有人遇到这个问题?


这样做的副作用似乎是模拟器中的搜索按钮似乎也不起作用。幸运的是,相同的键盘修复程序也修复了搜索按钮。
bmaupin 2012年

我还发现对于某些应用程序,我必须去Extended Controls-> Send keyboard shortcuts to->s/Emulator controls (default)/Virtual device/
snapfractalpop

Answers:


468

更新资料

从SDK版本21开始,Android虚拟设备管理器具有改进的UI,可以解决此问题。我在下面强调了一些更重要的配置设置:

在此处输入图片说明

如果您发现该软(基于屏幕)主键BackHome等等都从你的模拟器丢失,您可以设置hw.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上,您可以使用一个Terminal命令编辑所有仿真器配置:

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工具,但是我遇到了一些错误,阻止了它保存配置更改。
詹姆斯·沃尔德

是否有任何全局设置会影响我现有的所有avd?我不想更改大约20个现有的AVD。
Hoang Tran

@HoangTran没有全局配置,但是,如果您使用的是Mac OS,则可以使用我添加到答案中的“终端”命令来一次编辑所有现有的AVD。
詹姆斯·沃尔德

遗憾的是,这种解决方案对我不起作用。运行命令后,键盘仍无法在我的avd中使用。
贾斯汀

1
编辑配置文件对我来说很有效,但是奇怪的是,尽管有SDK版本21,但我看不到图片中显示的UI。
offby1 2012年

112

已确认。升级到工具版本20后,我遇到了同样的问题。我必须编辑AVD来添加一个选项,如下所示:

  1. 从Eclipse转到AVD Mananger。
  2. 选择特定的AVD,然后单击编辑
  3. 转到硬件部分,单击新建。
  4. 选择属性名称:键盘支持
  5. 默认情况下,将其添加为'no'值。只需单击值列并将其更改为“是”。
  6. 再次单击Edit AVD。

这将在config.ini文件中为AVD添加属性hw.keyboard = yes。

您还必须设置hw.mainKeys = yes


19
在单击“编辑AVD”之前,请确保“值”列失去焦点,否则将不保存对“是”的更改!
五子雀

1
嗨,我按照上面的说明进行操作,但是仍然无法使用PC键盘插入任何文本。当我双击“ AVD管理器”下面列出的AVD时,我发现编辑成功,因为它指示hw.keyboard:yes。我想念什么吗???
JibW 2012年

3
我建议采取以下措施:删除AVD,并在键盘支持下创建一个全新的AVD。
罗敏(Romin)

59

在Android Studio中,打开“ AVD管理器”(“工具”>“ Android”>“ AVD Manager”)。点击模拟器的“编辑”按钮: 在此处输入图片说明

选择“显示高级设置” 在此处输入图片说明

选中“启用键盘输入” 在此处输入图片说明

单击完成,然后启动仿真器以享受键盘输入的乐趣。


在启用键盘输入设置后为我工作,但想知道它如何首先停止了自身的工作。
Justcurious

3
令人沮丧的是,此复选框在每次模拟器更新后都会取消选中自身:(
Misha Akopov

2
在我的情况下,键盘已启用,但在模拟器中不起作用。解决方法是禁用键盘,启动模拟器,终止模拟器,启用键盘。
beroal

15

在AVD Manager中查看,选择AVD,然后单击Edit。在“硬件”部分:单击“新建”,搜索“键盘支持”,然后单击确定按钮添加,并将值设置为“是”,然后使用“编辑AVD”保存更改


奇怪的是,当我将此值设置为yes时,它将强制该值恢复为no,无论如何将再次使用新设备进行测试
epsilonpsi 2012年

我更喜欢这个答案。与更改config.ini文件相比,使用AVD管理器更令人难忘。
赛斯2012年

10

Google希望让开发人员更加头痛。

因此,您现在要做的就是编辑AVD,并在“硬件”部分为其添加“键盘支持”,然后将值更改为“是”。


1
不适用于我,AVD键盘支持值“是”不会一直保存,而是一直恢复为“否”。
贾斯汀

实际上,Google希望改进。现在,大多数设备都没有硬件键盘,因此默认值应为none / disabled。是的,与仿真器一起使用更容易,但这并不能反映现实环境。正确的方法是让开发人员专门启用它。
查理·柯林斯


2

以防万一有人觉得有用。

我曾与一个问题KEYCODE_DPAD_UP它属于轨迹球。解决此更改您的avdfolder / config.ini hw.trackBall = yes并按DEL或F6


2

尽管无法为您的Android虚拟设备启用键盘输入,但有时在无法输入时重新启动模拟器会有所帮助。


0

在用户主文件夹中查找隐藏的.android文件夹。您可以重命名或删除该文件夹,重新创建您的AVD,然后重新启动仿真器。该文件夹中可能有一个.ini文件,该文件已被删除。


是的,我也确实删除了.android和avd文件..虽然没有帮助。感谢您的输入
epsilonpsi 2012年

0

使用Hardware Keyboard +将boolean设置为true来重新创建AVD是唯一适用于我的解决方案。其他两个主要解决方案(通过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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.