Emulator Androida nie pobiera danych z klawiatury - narzędzia SDK wer. 20


324

Zaktualizowałem narzędzia SDK do wersji 20 (od 18) i od czasu aktualizacji emulator nie akceptuje danych wejściowych z klawiatury laptopa. Ale tylko przy użyciu własnej „miękkiej” klawiatury emulatora (która pojawia się, gdy pole wejściowe jest skupione).

Próbowałem ponownie zainstalować narzędzia SDK (i cały zestaw SDK pod tym względem), odinstalowałem i ponownie zainstalowałem wtyczki Eclipse Android, odtworzyłem urządzenia emulujące. Ale nic z tego nie pomaga i doprowadza mnie do szaleństwa. Beznadziejne jest wpisywanie za pomocą gładzika laptopa.

Czy ktoś napotkał ten problem?


Wydaje się, że efektem ubocznym jest to, że przycisk wyszukiwania w emulatorze również nie działa. Na szczęście ta sama poprawka klawiatury naprawia również przycisk wyszukiwania.
bmaupin

Odkryłem również, że w przypadku niektórych aplikacji musiałem przejść do Extended Controls-> Send keyboard shortcuts to->s/Emulator controls (default)/Virtual device/
snapfractalpop

Odpowiedzi:


468

Aktualizacja

Począwszy od wersji SDK 21, Menedżer urządzeń wirtualnych Android ma ulepszony interfejs użytkownika, który rozwiązuje ten problem. Poniżej podkreśliłem niektóre z ważniejszych ustawień konfiguracji:

wprowadź opis zdjęcia tutaj

Jeśli zauważysz, że (na podstawie ekranu) miękka główne klucze Back, Homeitp brakuje emulatora można ustawić hw.mainKeys=no, aby umożliwić im.

wprowadź opis zdjęcia tutaj

Oryginalna odpowiedź

Chociaż dokumentacja programisty mówi, że obsługa klawiatury jest domyślnie włączona, nie wygląda na to, że tak jest w SDK wersja 20. Jawnie włączyłem obsługę klawiatury w pliku config.ini mojego emulatora i działało!

Dodaj: hw.keyboard=yes

Do: ~/.android/avd/<emulator-device-name>.avd/config.ini

Podobnie dodaj, hw.dPad=yesjeśli chcesz poruszać się po liście aplikacji za pomocą klawiszy strzałek.

Odniesienie: http://developer.android.com/tools/devices/managing-avds-cmdline.html#hardwareopts

W systemach Mac OS i Linux możesz edytować wszystkie konfiguracje emulatora za pomocą jednego polecenia Terminal:

for f in ~/.android/avd/*.avd/config.ini; do echo 'hw.keyboard=yes' >> "$f"; done


W powiązanej uwadze, jeśli w emulatorze tabletu brakuje przycisków BACK / HOME, spróbuj wybrać WXGA800 jako wbudowaną skórkę w edytorze AVD: wprowadź opis zdjęcia tutaj

Lub ręcznie ustawiając skórkę w config.ini:

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

(przykład dotyczy API 16)


1
Jak wspomniano w innych odpowiedziach, możesz również użyć narzędzia AVD Manager, ale napotkałem błędy, które uniemożliwiają zapisywanie zmian konfiguracji.
James Wald

Czy jest jakieś globalne ustawienie, które wpłynie na wszystkie moje istniejące AVD? Nie chcę zmieniać około 20 istniejących AVD.
Hoang Tran

@HoangTran Nie ma globalnej konfiguracji, jednak jeśli używasz Mac OS, możesz użyć polecenia Terminal, które dodałem do odpowiedzi, aby edytować wszystkie istniejące AVD na raz.
James Wald

Niestety to rozwiązanie nie działało dla mnie. Po uruchomieniu polecenia klawiatura nadal nie działa w moim AVD.
Justin

1
Edycja pliku konfiguracyjnego działała dla mnie, ale dziwnie nie widzę interfejsu użytkownika pokazanego na obrazku, pomimo wersji 21 zestawu SDK.
offby1

112

Potwierdzony. Miałem ten sam problem po aktualizacji do Narzędzi w wersji 20. Musiałem edytować AVD, aby dodać opcję w następujący sposób:

  1. Z Eclipse przejdź do AVD Mananger.
  2. Wybierz konkretny AVD i kliknij Edytuj
  3. Przejdź do sekcji Sprzęt, kliknij Nowy.
  4. Wybierz nazwę właściwości: Obsługa klawiatury
  5. Domyślnie jest dodawany z wartością „nie”. Po prostu kliknij kolumnę wartości i zmień ją na „tak”.
  6. Kliknij ponownie Edytuj AVD.

Spowoduje to dodanie właściwości hw.keyboard = yes do pliku config.ini dla AVD.

Musisz także ustawić hw.mainKeys = yes


19
Upewnij się, że kolumna wartości traci fokus, zanim klikniesz Edytuj AVD, inaczej zmiana na „tak” nie zostanie zapisana!
Kowalik

1
Cześć. Postępowałem zgodnie z powyższymi instrukcjami, ale nadal nie mogę wstawić tekstu przy użyciu klawiatury komputera. Po dwukrotnym kliknięciu AVD na liście w Menedżerze AVD stwierdzam, że edycja powiodła się, ponieważ wskazuje hw.keyboard: tak. Czy coś brakuje?
JibW

3
Sugeruję następujące rzeczy: Usuń AVD i utwórz całkowicie nowy AVD z obsługą klawiatury.
Romin,

59

W Android Studio otwórz AVD Manager (Narzędzia> Android> AVD Manager). Naciśnij przycisk Edytuj emulatora: wprowadź opis zdjęcia tutaj

Wybierz „Pokaż ustawienia zaawansowane” wprowadź opis zdjęcia tutaj

Zaznacz „Włącz wprowadzanie z klawiatury” wprowadź opis zdjęcia tutaj

Kliknij przycisk Zakończ i uruchom emulator, aby korzystać z klawiatury.


Pracowałem dla mnie po włączeniu ustawienia klawiatury, ale zastanawiałem się, jak to przestało działać samo na pierwszym miejscu.
Justcurious

3
To jest tak frustrujące, że to pole wyboru odznacza się po każdej aktualizacji emulatora :(
Misha Akopov

2
W moim przypadku klawiatura była włączona, ale nie działała w emulatorze. Rozwiązaniem jest wyłączenie klawiatury, uruchomienie emulatora, zakończenie emulatora, włączenie klawiatury.
beroal,

15

Zajrzyj do AVD Manager, wybierz AVD i kliknij Edytuj. W sekcji Sprzęt: kliknij „Nowy” i wyszukaj „Obsługa klawiatury” i dodaj za pomocą przycisku OK, ustaw wartość na „tak” i zapisz zmiany za pomocą „Edytuj AVD”


dziwne jest to, że gdy
ustawię

Wolałem tę odpowiedź. Korzystanie z menedżera AVD jest bardziej niezapomnianym rozwiązaniem niż zmiana pliku config.ini.
Seth

10

Google chciał sprawić programistom trochę więcej bólu głowy.

Musisz teraz edytować AVD i dodać „Obsługa klawiatury” w sekcji Sprzęt i zmienić wartość na „Tak”


1
Nie działało dla mnie, wartość wsparcia klawiatury avd „tak” nie zostaje zapisana, powraca do „nie”.
Justin

Właściwie Google chciał coś ulepszyć. Większość urządzeń nie ma teraz klawiatur sprzętowych, więc domyślnie nie powinno być żadnych / wyłączone. Tak, łatwiej jest pracować z emulatorem z jednym, ale to nie odzwierciedla rzeczywistych warunków. Prawidłowy sposób polega na tym, aby deweloperzy specjalnie go włączali.
Charlie Collins,

4

W swoim katalogu domowym /.android/avd//config.ini dodaj wiersz hw.keyboard = yes


2

Na wypadek, gdyby ktoś uzna to za przydatne.

Miałem problem z KEYCODE_DPAD_UP, który należy do trackBall. aby rozwiązać ten problem, zmień swój avdfolder / config.ini hw.trackBall = yes i wciśnij DEL lub F6


2

Ponowne uruchomienie emulatora pomaga czasami, gdy pisanie jest niedostępne - pomimo włączonej klawiatury dla urządzenia wirtualnego z Androidem.


0

Poszukaj ukrytego folderu .android w folderze domowym użytkownika. Możesz zmienić nazwę tego folderu lub usunąć go, ponownie utworzyć AVD i ponownie uruchomić emulator. Możliwe, że w tym folderze znajduje się plik .ini z ustawionym ustawieniem.


tak, usunąłem też pliki .android i avd .. nie pomogło. dzięki za wkład
epsilonpsi

0

Odtworzenie AVD z klawiaturą sprzętową + ustawieniem wartości logicznej na true było jedynym rozwiązaniem, które działało dla mnie; pozostałe dwa główne rozwiązania (terminal lub edycja istniejącego AVD przez GUI) spowodowały awarie oprogramowania / emulatora na moim komputerze Mac. Utworzenie nowego AVD spowodowało, że klawiatura działała dobrze.


0

Oto kilka obejść, które faktycznie działały dla mnie, jest to to samo rozwiązanie, co w najpopularniejszej odpowiedzi - wystarczy dodać hw.keyboard = tak do config.ini, ale ponieważ to nie działało dla mnie, dodatkowo

  1. przemianowano config.ini (wystarczy dowolna nazwa) na coś takiego jak consssssfig.ini
  2. zrestartowałem emulator (oczywiście się nie uruchomił)
  3. ponownie zmieniono nazwę config.ini
  4. (Nie jestem pewien, czy dotyczy) Dodałem ten nowy parametr (hw.keyboard = yes) na początku pliku config.ini
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.