안드로이드 에뮬레이터는 키보드 입력을받지 않습니다-SDK tools 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 Virtual Device Manager에는이 문제를 해결하는 개선 된 UI가 있습니다. 아래에서 더 중요한 구성 설정 중 일부를 강조했습니다.

여기에 이미지 설명을 입력하십시오

당신이 주요 키 소프트 (화면 기반) 것을 알 경우 Back, Home등 에뮬레이터에서 누락을 설정할 수 있습니다 hw.mainKeys=no을 활성화합니다.

여기에 이미지 설명을 입력하십시오

원래 답변

개발자 문서에 키보드 지원이 기본적으로 활성화되어 있다고 나와 있지만 SDK 개정판 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입니다)


1
다른 답변에서 언급했듯이 AVD Manager 도구를 사용할 수도 있지만 구성 변경 사항을 저장하지 못하게하는 버그가 발생했습니다.
James Wald

기존의 모든 DVD에 영향을 미치는 전역 설정이 있습니까? 기존의 약 20 개의 DVD를 바꾸고 싶지 않습니다.
Hoang Tran

@HoangTran 전역 구성은 없지만 Mac OS를 사용하는 경우 응답에 추가 한 터미널 명령을 사용하여 모든 기존 AVD를 한 번에 편집 할 수 있습니다.
James Wald

슬프게도이 솔루션은 저에게 효과적이지 않았습니다. 명령을 실행 한 후에도 키보드에서 여전히 키보드가 작동하지 않습니다.
저스틴

1
구성 파일을 편집하면 효과가 있었지만 SDK 버전 21에도 불구하고 그림에 UI가 표시되지 않습니다.
offby1

112

확인했습니다. Tools 버전 20으로 업그레이드 한 후에도 같은 문제가 발생했습니다. AVD를 편집하여 다음과 같은 옵션을 추가해야했습니다.

  1. Eclipse에서 AVD Mananger로 이동하십시오.
  2. 특정 AVD를 선택하고 편집을 클릭하십시오
  3. 하드웨어 섹션으로 이동하여 새로 만들기를 클릭하십시오.
  4. 속성 이름 선택 : 키보드 지원
  5. 기본적으로 값은 'no'로 추가됩니다. 값 열을 클릭하고 'yes'로 변경하십시오.
  6. AVD 편집을 다시 클릭하십시오.

AVD의 config.ini 파일에 hw.keyboard = yes 속성이 추가됩니다.

hw.mainKeys = yes도 설정해야합니다


19
AVD 편집을 클릭하기 전에 값 열에 포커스가 없는지 확인하십시오. 그렇지 않으면 '예'에 대한 변경 사항이 저장되지 않습니다!
Nuthatch

1
안녕하세요, 위의 지침을 따랐지만 여전히 PC 키보드를 사용하여 텍스트를 삽입 할 수 없습니다. AVD Manager 아래에 나열된 AVD를 두 번 클릭하면 hw.keyboard : yes를 나타내므로 편집이 성공한 것입니다. 뭔가 빠졌습니까 ???
JibW

3
다음을 제안합니다. AVD를 삭제하고 키보드 지원으로 완전히 새로운 AVD를 만듭니다.
Romin

59

Android Studio에서 AVD 관리자 (도구> Android> AVD 관리자)를 엽니 다. 에뮬레이터의 편집 버튼을 누릅니다. 여기에 이미지 설명을 입력하십시오

"고급 설정 표시"를 선택하십시오. 여기에 이미지 설명을 입력하십시오

"키보드 입력 활성화"확인 여기에 이미지 설명을 입력하십시오

마침을 클릭하고 에뮬레이터를 시작하여 키보드 입력을 즐기십시오.


enablinh 키보드 입력 설정 후 나를 위해 일했지만 어떻게 처음부터 자체적으로 작동을 멈췄는지 궁금합니다.
Justcurious

3
모든 에뮬레이터 업데이트 후에이 확인란의 선택을 해제하는 것이 매우 실망 스럽습니다. (
Misha Akopov

2
필자의 경우 키보드가 활성화되었지만 에뮬레이터에서 작동하지 않았습니다. 수정은 키보드 비활성화, 에뮬레이터 시작, 에뮬레이터 종료, 키보드 활성화입니다.
beroal

15

AVD Manager에서 AVD를 선택하고 편집을 클릭하십시오. 하드웨어 섹션에서 : "신규"를 클릭하고 "키보드 지원"을 검색 한 후 확인 버튼으로 추가하고 값을 "예"로 설정하고 "AVD 편집"으로 변경 사항을 저장하십시오.


이상한 것은 내가 네이 값을 설정하면, 그것은 no로 값이 다시는, 어쨌든 다시 새로운 장치로 테스트합니다 강제로입니다
epsilonpsi

나는이 대답을 선호했다. AVD 관리자를 사용하는 것이 config.ini 파일을 변경하는 것보다 기억에 남는 솔루션입니다.
Seth

10

구글은 개발자들에게 두통을 더주고 싶어했다.

따라서 지금해야 할 일은 하드웨어 섹션에서 AVD를 편집하고 "키보드 지원"을 추가하고 값을 "예"로 변경하는 것입니다.


1
나를 위해 작동하지 않았다, "예"의 avd 키보드 지원 값은 저장되지 않고 계속 "아니오"로 되돌아갑니다.
저스틴

실제로 Google은 개선하기를 원했습니다. 대부분의 장치에는 이제 하드웨어 키보드가 없으므로 기본값은 none / disabled 여야합니다. 예, 에뮬레이터로 작업하는 것이 더 쉽지만 실제 상황을 반영하지는 않습니다. 올바른 방법은 개발자가 구체적으로 사용하도록 설정하는 것입니다.
Charlie Collins


2

누군가가 유용하다고 생각하는 경우를 대비하여.

KEYCODE_DPAD_UP에 문제가 있었는데 그것은 trackBall 에 속합니다. 이 변경을 해결하려면 avdfolder / config.ini hw.trackBall = yes를 누르고 DEL 또는 F6을 누릅니다.


2

에뮬레이터를 다시 시작 하면 입력 할 수없는 경우 (Android 가상 장치에 키보드 입력이 활성화되어 있음)에도 도움이됩니다.


0

사용자 홈 폴더에서 숨겨진 .android 폴더를 찾으십시오. 이 폴더의 이름을 바꾸거나 폴더를 삭제하고 AVD를 다시 만든 다음 에뮬레이터를 다시 시작할 수 있습니다. 해당 폴더에 해당 설정이 .ini 파일이있을 수 있습니다.


네, .android 및 avd 파일도 삭제했습니다.. 그래도 도움이되지 않았습니다. 입력 주셔서 감사합니다
epsilonpsi

0

하드웨어 키보드로 AVD를 재생성하고 부울을 true로 설정하는 것이 나에게 유일한 해결책이었습니다. 다른 두 가지 주요 솔루션 (터미널 또는 GUI를 통해 기존 AVD 편집)으로 인해 Mac에서 소프트웨어 / 에뮬레이터 충돌이 발생했습니다. 새로운 AVD를 만들면 키보드가 제대로 작동합니다.


0

다음은 실제로 나를 위해 일한 해결 방법입니다. 가장 인기있는 답변과 동일한 솔루션입니다-hw.keyboard = yes를 config.ini에 추가하십시오. 그러나 이것이 나를 위해 작동하지 않았기 때문에 추가로

  1. 이름이 config.ini로 바뀌고 consssssfig.ini와 같은 이름으로 변경되었습니다.
  2. 에뮬레이터를 다시 시작했습니다 (분명히 시작되지 않았습니다)
  3. 다시 config.ini로 이름이 변경되었습니다.
  4. (관련성이 확실하지 않은 경우) config.ini 파일을 시작할 때이 새 매개 변수 (hw.keyboard = yes)를 추가했습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.