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

Posted

技术标签:

【中文标题】Android 模拟器不接受键盘输入 - SDK 工具 rev 20【英文标题】:Android emulator doesn't take keyboard input - SDK tools rev 20 【发布时间】:2012-06-29 10:13:15 【问题描述】:

我已将 SDK 工具升级到修订版 20(从 18 版),自升级以来,模拟器似乎不接受来自笔记本电脑键盘的输入。但只能使用模拟器自己的“软”键盘(当输入字段被聚焦时出现)。

我尝试重新安装 SDK 工具(以及整个 SDK),卸载并重新安装 Eclipse android 插件,重新创建模拟器设备。但这些似乎都没有帮助,它让我发疯。使用笔记本电脑的触控板键入是没有希望的。

有人遇到过这个问题吗?

【问题讨论】:

这样做的副作用似乎是模拟器中的搜索按钮似乎也不起作用。值得庆幸的是,键盘的相同修复也修复了搜索按钮。 我还发现,对于某些应用程序,我必须转到 Extended Controls -> Send keyboard shortcuts to -> s/Emulator controls (default)/Virtual device/ 【参考方案1】:

更新

从 SDK rev 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 上,您可以使用一个终端命令编辑所有模拟器配置:

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 为例)

【讨论】:

正如其他答案提到的那样,您也可以使用 AVD Manager 工具,但我遇到了阻止它保存配置更改的错误。 是否有任何全局设置会影响我现有的所有 avd?我不想更改大约 20 个现有的 avd。 @HoangTran 没有全局配置,但是,如果您使用的是 Mac OS,则可以使用我添加到答案中的终端命令一次编辑所有现有的 AVD。 遗憾的是,这个解决方案对我不起作用。运行命令后,键盘在我的avd里还是不行。 编辑配置文件对我有用,但奇怪的是我没有看到图片中显示的 UI,尽管 SDK 版本为 21。【参考方案2】:

已确认。升级到 Tools 版本 20 后我遇到了同样的问题。我必须编辑 AVD 以添加如下选项:

    从 Eclipse 转到 AVD Mananger。 选择特定的 AVD 并点击编辑 进入硬件部分,点击新建。 选择属性名称:键盘支持 默认情况下,它被添加一个值'no'。只需单击值列并将其更改为“是”。 再次单击编辑 AVD。

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

您还必须设置 hw.mainKeys = yes

【讨论】:

确保在单击编辑 AVD 之前值列失去焦点,否则将不会保存对“是”的更改! 您好,我按照上述说明操作,但仍然无法使用我的 PC 键盘插入任何文本。当我双击 AVD Manager 下列出的 AVD 时,我发现编辑成功,因为它指示 hw.keyboard:yes。我错过了什么吗??? 我建议如下:删除 AVD 并使用键盘支持创建一个全新的 AVD。【参考方案3】:

在 Android Studio 中,打开 AVD 管理器(工具 > Android > AVD 管理器)。 点击模拟器的编辑按钮:

选择“显示高级设置”

勾选“启用键盘输入”

单击完成并启动模拟器以享受键盘输入。

【讨论】:

在启用键盘输入设置后为我工作,但想知道它是如何首先停止工作的。 每次模拟器更新后这个复选框都会取消选中,这太令人沮丧了:( 在我的情况下,键盘已启用,但在模拟器中不起作用。修复方法是禁用键盘、启动模拟器、终止模拟器、启用键盘。【参考方案4】:

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

【讨论】:

奇怪的是,当我将此值设置为是时,它会强制该值恢复为否,无论如何都会再次使用新设备进行测试 我更喜欢这个答案。使用 AVD 管理器是一个比更改 config.ini 文件更令人难忘的解决方案。【参考方案5】:

Google 想让开发人员更加头疼。

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

【讨论】:

对我不起作用,“yes”的 avd 键盘支持值不会一直保存,它会一直恢复为“no”。 实际上 Google 想要改进一些东西。大多数设备现在没有硬件键盘,所以默认应该是无/禁用。是的,与模拟器一起使用会更容易,但这并不能反映现实世界的情况。正确的做法是让开发者专门启用它。【参考方案6】:

在您的主文件夹中 /.android/avd//config.ini 添加行 hw.keyboard=yes

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

以防万一有人觉得它有用。

我遇到了属于轨迹球的 KEYCODE_DPAD_UP 问题。要解决此问题,请更改您的 avdfolder/config.ini hw.trackBall=yes 并按 DEL 或 F6

【讨论】:

【参考方案9】:

这里有一些实际对我有用的解决方法,它与最流行的答案中的解决方案相同 - 只是 将 hw.keyboard=yes 添加到 config.ini 但是由于这对我不起作用,所以我另外

    将 config.ini(任何名称都可以)重命名为 consssssfig.ini 之类的名称 重新启动模拟器(显然没有启动) 再次重命名 config.ini (我不确定是否相关)我在 config.ini 文件的开头添加了这个新参数 (hw.keyboard=yes)

【讨论】:

【参考方案10】:

在您的用户主文件夹中查找隐藏的 .android 文件夹。您可以重命名或删除此文件夹,重新创建 AVD,然后重新启动模拟器。可能是该文件夹中有一个 .ini 文件,该文件已修改该设置。

【讨论】:

是的,我也确实删除了 .android 和 avd 文件。但没有帮助。感谢您的输入【参考方案11】:

使用硬件键盘重新创建 AVD + 将布尔值设置为 true 是唯一对我有用的解决方案;其他两个主要解决方案(终端或通过 GUI 编辑现有的 AVD)都导致我的 Mac 上的软件/模拟器崩溃。制作新的 AVD 后键盘工作正常。

【讨论】:

【参考方案12】:

我使用了一个 API 级别 23 的模拟器,它不需要键盘输入来安装 apk。 所以我为 API Level 29 创建了新的模拟器,然后它就可以工作了。 以下是安装新模拟器的步骤。

    打开“Android 虚拟设备管理器” 创建新的虚拟设备。 选择系统镜像时,请在“虚拟设备配置”窗口选择并下载最新版本(API Level29)

【讨论】:

【参考方案13】:

有时电脑键盘在安卓模拟器上停止工作。今天我注意到,按下这个按钮(我用红色箭头标记)后,键盘又开始工作了(似乎是没有模拟器窗口焦点的一些问题)

【讨论】:

以上是关于Android 模拟器不接受键盘输入 - SDK 工具 rev 20的主要内容,如果未能解决你的问题,请参考以下文章

模拟器不接受ANDROID_SDK_ROOT

iOS7 模拟器中的 UITextField 不接受来自 mac 键盘的任何输入

EditText 不接受 latptop 键盘输入

Android中怎么实现模拟键盘输入?

Android 模拟器上的音频输入

在android studio上运行应用程序的sdk错误