具有自定义构建的 Android 模拟器不接受键盘输入
Posted
技术标签:
【中文标题】具有自定义构建的 Android 模拟器不接受键盘输入【英文标题】:Android emulator with custom build does not accept keyboard entry 【发布时间】:2012-08-30 14:24:51 【问题描述】:我有一个使用自定义构建的金鱼内核的自定义 android 映像。我一直在使用模拟器进行软件开发。
emulator -kernel out/target/product/atom/kernel
当我升级到 SDK 20 后,我不再从主机或图形键盘获得键盘输入。这曾经奏效。我已经看到有关设置 hw.keyboard 属性=yes 的 cmets。我找不到有效的操作序列。
a) 尝试启动模拟器并强制我的硬件配置
emulator -verbose -kernel out/target/product/atom/kernel -qemu -android-hw /home/jgrecco/work/ics-4.0.4/out/target/product/atom/hardware-qemu.ini
hardware-qemu 被覆盖,hw.keyboard 选项为 no。
b) 创建一个 AVD 并让它加载我的自定义内核和映像
ex: android create avd --force -b x86 -n aal_emul -t 3
emulator -kernel out/target/product/atom/kernel -show-kernel @aal_emul
但无法让 AVD 启动我的自定义映像。它似乎启动了一个默认映像。我尝试过复制 img 文件,但没有成功
c) 尝试修改默认的 hardware.ini 设置 ics-4.0.4/external/qemu/android/avd/hardware-properties.ini 无效。
许多其他变体。
如果有人可以使上述任何解决方案起作用或告诉我一个,我将不胜感激。顺便说一句,这是针对 x86 atom 的。
TIA
【问题讨论】:
【参考方案1】:经过大量的实验、谷歌搜索、大量诅咒不准确(过时)的文档和更新我所有的源(与 repo 同步挂起 - 咆哮),我想出了一个解决方法。我想我会为了他人的利益而发布这个。
基本问题是升级到 SDK 20 后,我无法再使用任何方式(真实或仿真键盘)输入应用程序。这仅在加载我自己的自定义图像“lunch #; emulator -kernel out/target/product/...”时发生。上面描述的覆盖 hw.keyboard 属性的尝试都没有对我有用。
我发现的解决方法是在运行时更改模拟器中的设置。设置->语言和输入->default_Hardware 物理键盘(关闭)。虽然我不能使用主机键盘,但现在可以使用模拟器键盘进行输入。
【讨论】:
【参考方案2】:尝试在hardware-qemu.ini
旁边的文件config.ini
中设置'hw.keyboard=true'
。
这会覆盖hardware-qemu.ini
中的默认值,不应被覆盖。
【讨论】:
以上是关于具有自定义构建的 Android 模拟器不接受键盘输入的主要内容,如果未能解决你的问题,请参考以下文章
iOS7 模拟器中的 UITextField 不接受来自 mac 键盘的任何输入