Емулятор 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 має вдосконалений інтерфейс користувача, який вирішує цю проблему. Нижче я виділив деякі важливіші параметри конфігурації:

введіть тут опис зображення

Якщо ви помітили , що м'який (екран на основі) основні ключі Back, Homeі т.д. відсутні емулятор ви можете встановити , 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, спробуйте вибрати WXGA800 як вбудовану шкіру в редакторі AVD: введіть тут опис зображення

Або вручну встановивши скін в config.ini:

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

(наприклад, для API 16)


1
В інших згаданих відповідях ви також можете використовувати інструмент AVD Manager, але у мене виникли помилки, які не дозволяють йому зберігати зміни конфігурації.
Джеймс Уолд

Чи є якісь глобальні налаштування, які вплинуть на всі мої існуючі avd? Я не хочу змінювати приблизно 20 існуючих авд.
Hoang Tran

@HoangTran Немає глобальної конфігурації, однак, якщо ви використовуєте Mac OS, ви можете використовувати команду Terminal, яку я додав у відповідь, щоб редагувати всі існуючі AVD одразу.
Джеймс Уолд

На жаль, це рішення не спрацювало для мене. Після запуску команди клавіатура все ще не працює в моєму авд.
Джастін

1
Редагування конфігураційного файлу працювало для мене, але як не дивно, я не бачу інтерфейсу користувача, зображеного на малюнку, незважаючи на версію 21 SDK.
offby1

112

Підтверджено. У мене була та сама проблема після оновлення до Інструменти версії 20. Мені довелося редагувати AVD, щоб додати параметр наступним чином:

  1. З Eclipse перейдіть до AVD Mananger.
  2. Виберіть конкретний AVD і натисніть Редагувати
  3. Перейдіть до розділу «Обладнання», натисніть «Створити».
  4. Виберіть Назва власності: Підтримка клавіатури
  5. За замовчуванням він додається зі значенням "ні". Просто натисніть на стовпчик значення та змініть його на "так".
  6. Клацніть на Редагувати AVD ще раз.

Це додасть властивість hw.keyboard = так у файл config.ini для AVD.

Вам також потрібно встановити hw.mainKeys = так


19
Переконайтесь, що стовпець значення втрачає фокус перед натисканням кнопки «Редагувати AVD», або зміна на «так» не буде збережено!
Горіх

1
Привіт, я дотримувався вищевказаних інструкцій, але все ще не можу вставити будь-який текст за допомогою моєї клавіатури ПК. Коли я двічі клацнув на AVD, вказаному в диспетчері AVD, я виявив, що редагування вдале, оскільки воно вказує на hw.keyboard: так. Я щось пропускаю ???
JibW

3
Я пропоную наступне: Видаліть AVD і створіть абсолютно свіжий AVD з підтримкою клавіатури.
Ромен

59

У Android Studio відкрийте диспетчер AVD (Інструменти> Android> AVD Manager). Торкніться кнопки "Редагувати" емулятора: введіть тут опис зображення

Виберіть "Показати розширені налаштування" введіть тут опис зображення

Поставте прапорець "Увімкнути введення клавіатури" введіть тут опис зображення

Клацніть Готово і запустіть емулятор, щоб насолодитися введенням на клавіатурі.


Працював для мене після налаштування введення на клавіатурі enablinh, але цікаво, як це перестало працювати сама по собі.
Справедливий

3
Це настільки засмучує, що цей прапорець знімає себе після кожного оновлення емулятора :(
Misha Akopov

2
У моєму випадку клавіатура була включена, але в емуляторі не працювала. Виправлення полягає у відключенні клавіатури, запуску емулятора, припиненні емулятора, включенні клавіатури.
beroal

15

Загляньте в диспетчер AVD, виберіть AVD і натисніть кнопку Правка. У розділі «Обладнання» натисніть «Нове» та знайдіть «Підтримка клавіатури» та додайте кнопку ОК та встановіть значення «так» та збережіть зміни за допомогою «Редагувати AVD»


дивна річ, коли я встановив це значення так, воно змушує це значення повернути до ні, все одно перевірятимуться новим пристроєм знову
epsilonpsi

Я віддав перевагу цій відповіді. Використання диспетчера AVD - більш запам'ятоване рішення, ніж зміна файлу config.ini.
Сет

10

Google хотів дати ще трохи головного болю розробникам.

Отже, що вам зараз потрібно зробити - це відредагувати AVD та додати в нього «Підтримка клавіатури» у розділі «Обладнання» та змінити значення на «Так»


1
Не працювало для мене, значення підтримки "клавіатури" avd не зберігається, воно повертається до "ні".
Джастін

Насправді Google хотів покращити справи. Більшість пристроїв зараз не мають апаратних клавіатур, тому за замовчуванням повинно бути немає / вимкнено. Так, з емулятором простіше працювати з одним, але це не відображає реальних умов. Правильний спосіб - це зробити спеціально розроблені розробники.
Чарлі Коллінз


2

На всякий випадок, якщо хтось вважає це корисним.

У мене виникла проблема з KEYCODE_DPAD_UP, він належить до trackBall. щоб вирішити цю проблему, змінити свій avdfolder / config.ini hw.trackBall = так і натиснути DEL або F6


2

Перезапуск емулятора допомагає іноді, коли введення даних недоступне - незважаючи на те, що ввімкнено клавіатуру для вашого віртуального пристрою Android.


0

Шукайте приховану папку .android у домашній папці користувача. Ви можете перейменувати або видалити цю папку, відтворити AVD і перезапустити емулятор. Можливо, у цій папці є файл .ini, у якому цей параметр змінено.


так, я також видалив файли .android та avd .. Хоча не допомогло. дякую за вклад
epsilonpsi

0

Відтворення AVD за допомогою апаратної клавіатури + встановлення булевого значення true було єдиним рішенням, яке працювало для мене; інші два основні рішення (термінал або редагування існуючого AVD через GUI) призвели до збоїв програмного забезпечення / емулятора на моєму Mac. Створення нового AVD призвело до того, що клавіатура працювала чудово.


0

Ось деяке вирішення, яке насправді працювало для мене, це те саме рішення, що і в найпопулярнішій відповіді - просто додайте hw.keyboard = так, щоб config.ini, але оскільки для мене це не працювало , я додатково

  1. перейменовано config.ini (будь-яке ім'я) на щось на зразок consssssfig.ini
  2. перезапущений емулятор (очевидно, він не запускався)
  3. перейменований config.ini знову
  4. (Я не впевнений, чи це стосується) Я додав цей новий параметр (hw.keyboard = так) під час початку файлу config.ini
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.