ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

有没有人遇到过这个问题?

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

G
Gili

更新

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

https://i.stack.imgur.com/2On6A.png

如果您发现模拟器中缺少软(基于屏幕的)主键 BackHome 等,您可以设置 hw.mainKeys=no 以启用它们。

https://i.stack.imgur.com/Bva7C.png

原始答案

尽管开发人员文档说默认启用键盘支持,但在 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

https://i.stack.imgur.com/LB9Q1.png

或者通过在 config.ini 中手动设置皮肤:

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

(示例适用于 API 16)


正如提到的其他答案,您也可以使用 AVD Manager 工具,但我遇到了阻止它保存配置更改的错误。
是否有任何全局设置会影响我现有的所有 avd?我不想更改大约 20 个现有的 avd。
编辑配置文件对我有用,但奇怪的是我没有看到图片中显示的 UI,尽管 SDK 版本为 21。
它又发生了。我有一个可以工作的模拟器硬件键盘,然后从 SDK 25.0.3 升级到 26.0.x,硬件键盘停止工作。不过,相同的答案可以解决问题。但是,我希望我知道为什么/如何更改模拟器设置。
您可以在命令行中通过 android avd 打开 avd 管理器工具。 androiddocs.com/tools/devices/managing-avds.html
M
MyNameIsAnz

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

从 Eclipse 转到 AVD Mananger。选择特定的 AVD 并单击 Edit 转到 Hardware 部分,单击 New。选择属性名称:键盘支持默认情况下,它的添加值为“no”。只需单击值列并将其更改为“是”。再次单击编辑 AVD。

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

您还必须设置 hw.mainKeys = yes


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

https://i.stack.imgur.com/ihoEK.png

https://i.stack.imgur.com/I0NHJ.png

https://i.stack.imgur.com/DHZ5t.png

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


在启用键盘输入设置后为我工作,但想知道它是如何首先停止工作的。
令人沮丧的是,这个复选框在每次模拟器更新后都会取消选中:(
就我而言,键盘已启用,但在模拟器中不起作用。修复是禁用键盘,启动模拟器,终止模拟器,启用键盘。
J
Joel Pelaez

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


奇怪的是,当我将此值设置为是时,它会强制该值恢复为否,无论如何都会再次使用新设备进行测试
我更喜欢这个答案。使用 AVD 管理器是比更改 config.ini 文件更容易记住的解决方案。
V
Vincy

谷歌想让开发者更加头疼。

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


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

将以下行 hw.keyboard=yes 添加到您的 AVD 配置文件 ~/.android/avd/<avd_folder>/config.ini


s
starbeamrainbowlabs

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


P
PbxMan

以防万一有人发现它有用。

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


W
Witold

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

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


w
wilddev

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

https://i.stack.imgur.com/ghfkQ.png


E
Eric Cloninger

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


是的,我也确实删除了 .android 和 avd 文件。但没有帮助。感谢您的输入
D
Davek804

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


p
persec10000

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

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