Der Android-Emulator akzeptiert keine Tastatureingaben - SDK-Tools Version 20

324

Ich habe die SDK-Tools auf Version 20 (von 18) aktualisiert, und seit dem Upgrade scheint der Emulator keine Eingaben von der Tastatur des Laptops zu akzeptieren. Verwenden Sie jedoch nur die "weiche" Tastatur des Emulators (die angezeigt wird, wenn ein Eingabefeld fokussiert ist).

Ich habe versucht, die SDK-Tools (und das gesamte SDK) neu zu installieren, Eclipse Android-Plugins zu deinstallieren und neu zu installieren und Emulatorgeräte neu zu erstellen. Aber nichts davon scheint zu helfen und es macht mich verrückt. Es ist hoffnungslos, das Trackpad eines Laptops einzugeben.

Ist jemand auf dieses Problem gestoßen?

epsilonpsi
quelle
Ein Nebeneffekt davon scheint zu sein, dass die Suchschaltfläche im Emulator ebenfalls nicht zu funktionieren scheint. Glücklicherweise behebt der gleiche Fix für die Tastatur auch die Suchtaste.
Bmaupin
Ich habe auch festgestellt, dass ich für einige Apps zu Extended Controls-> Send keyboard shortcuts to->s/Emulator controls (default)/Virtual device/
snapfractalpop am

Antworten:

468

Aktualisieren

Ab SDK Version 21 verfügt der Android Virtual Device Manager über eine verbesserte Benutzeroberfläche, mit der dieses Problem behoben wird. Ich habe einige der wichtigsten Konfigurationseinstellungen unten hervorgehoben:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie feststellen , dass die weichen (Bildschirm-basierte) Haupttasten Back, Homeusw. von Ihrem Emulator fehlen können Sie einstellen , um hw.mainKeys=nosie zu aktivieren.

Geben Sie hier die Bildbeschreibung ein

Ursprüngliche Antwort

Obwohl in der Entwicklerdokumentation angegeben ist, dass die Tastaturunterstützung standardmäßig aktiviert ist, scheint dies in SDK Version 20 nicht der Fall zu sein. Ich habe die Tastaturunterstützung in der Datei config.ini meines Emulators explizit aktiviert, und das hat funktioniert!

Hinzufügen: hw.keyboard=yes

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

Fügen Sie ebenfalls hinzu, hw.dPad=yeswenn Sie mit den Pfeiltasten in der Anwendungsliste navigieren möchten.

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

Unter Mac OS und Linux können Sie alle Emulatorkonfigurationen mit einem Terminalbefehl bearbeiten:

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


Wenn in Ihrem Tablet-Emulator die Tasten BACK / HOME fehlen, wählen Sie im AVD-Editor WXGA800 als integrierten Skin aus: Geben Sie hier die Bildbeschreibung ein

Oder indem Sie den Skin manuell in config.ini einstellen:

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

(Beispiel ist für API 16)

James Wald
quelle
1
Wie in den anderen Antworten erwähnt, können Sie auch das AVD Manager-Tool verwenden, aber ich habe Fehler festgestellt, die verhindern, dass Konfigurationsänderungen gespeichert werden.
James Wald
Gibt es eine globale Einstellung, die sich auf alle meine vorhandenen avd auswirkt? Ich möchte nicht etwa 20 bestehende avd ändern.
Hoang Tran
@HoangTran Es gibt keine globale Konfiguration. Wenn Sie jedoch Mac OS verwenden, können Sie den Terminal-Befehl verwenden, den ich der Antwort hinzugefügt habe, um alle vorhandenen AVDs gleichzeitig zu bearbeiten.
James Wald
Leider hat diese Lösung bei mir nicht funktioniert. Nach dem Ausführen des Befehls funktioniert die Tastatur in meinen AVDs immer noch nicht.
Justin
1
Das Bearbeiten der Konfigurationsdatei hat bei mir funktioniert, aber seltsamerweise wird die im Bild gezeigte Benutzeroberfläche nicht angezeigt, obwohl Version 21 des SDK vorhanden ist.
offby1
112

Bestätigt. Nach dem Upgrade auf Tools Version 20 hatte ich das gleiche Problem. Ich musste die AVD bearbeiten, um eine Option wie folgt hinzuzufügen:

  1. Gehen Sie von Eclipse zu AVD Mananger.
  2. Wählen Sie die jeweilige AVD aus und klicken Sie auf Bearbeiten
  3. Gehen Sie zum Abschnitt Hardware und klicken Sie auf Neu.
  4. Wählen Sie den Eigenschaftsnamen: Tastaturunterstützung
  5. Standardmäßig wird es mit dem Wert 'no' hinzugefügt. Klicken Sie einfach auf die Wertespalte und ändern Sie sie in "Ja".
  6. Klicken Sie erneut auf AVD bearbeiten.

Dadurch wird eine Eigenschaft hw.keyboard = yes in der Datei config.ini für die AVD hinzugefügt.

Sie müssen auch hw.mainKeys = yes setzen

Romin
quelle
19
Stellen Sie sicher, dass die Wertespalte den Fokus verliert, bevor Sie auf AVD bearbeiten klicken. Andernfalls wird die Änderung in "Ja" nicht gespeichert!
Kleiber
1
Hallo, ich habe die obigen Anweisungen befolgt, kann aber mit meiner PC-Tastatur immer noch keinen Text einfügen. Wenn ich auf die unter dem AVD-Manager aufgelistete AVD doppelklicke, stelle ich fest, dass die Bearbeitung erfolgreich ist, da hw.keyboard angezeigt wird: yes. Vermisse ich etwas ???
JibW
3
Ich schlage Folgendes vor: Löschen Sie die AVD und erstellen Sie eine völlig neue AVD mit Tastaturunterstützung.
Romin
59

Öffnen Sie in Android Studio den AVD Manager (Extras> Android> AVD Manager). Tippen Sie auf die Schaltfläche Bearbeiten des Emulators: Geben Sie hier die Bildbeschreibung ein

Wählen Sie "Erweiterte Einstellungen anzeigen" Geben Sie hier die Bildbeschreibung ein

Aktivieren Sie "Tastatureingabe aktivieren". Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf Fertig stellen und starten Sie den Emulator, um die Tastatureingabe zu genießen.

Hong
quelle
Arbeitete für mich, nachdem ich die Tastatureingabeeinstellung aktiviert hatte, fragte mich aber, wie es überhaupt nicht mehr von selbst funktionierte.
Justcurious
3
Es ist so frustrierend, dass dieses Kontrollkästchen sich nach jedem Emulator-Update deaktiviert :(
Misha Akopov
2
In meinem Fall war die Tastatur aktiviert, funktionierte aber im Emulator nicht. Das Update besteht darin, die Tastatur zu deaktivieren, den Emulator zu starten, den Emulator zu beenden und die Tastatur zu aktivieren.
Beroal
15

Suchen Sie im AVD Manager, wählen Sie die AVD aus und klicken Sie auf Bearbeiten. Im Hardware-Bereich: Klicken Sie auf "Neu" und suchen Sie nach "Tastaturunterstützung" und fügen Sie mit OK hinzu. Setzen Sie den Wert auf "Ja" und speichern Sie die Änderungen mit "AVD bearbeiten".

Joel Pelaez
quelle
Seltsame Sache ist, wenn ich diesen Wert auf Ja setze, erzwingt es den Wert zurück auf Nein, wird sowieso wieder mit einem neuen Gerät testen
epsilonpsi
Ich habe diese Antwort vorgezogen. Die Verwendung des AVD-Managers ist eine einprägsamere Lösung als das Ändern der Datei config.ini.
Seth
10

Google wollte den Entwicklern mehr Kopfschmerzen bereiten.

Was Sie jetzt tun müssen, ist, Ihre AVD zu bearbeiten und "Tastaturunterstützung" dafür im Abschnitt "Hardware" hinzuzufügen und den Wert in "Ja" zu ändern.

Vincy
quelle
1
Hat bei mir nicht funktioniert, der avd-Tastaturunterstützungswert "yes" bleibt nicht gespeichert, sondern wird immer wieder auf "no" zurückgesetzt.
Justin
Eigentlich wollte Google die Dinge verbessern. Die meisten Geräte haben jetzt keine Hardwaretastaturen, daher sollte der Standardwert keine / deaktiviert sein. Ja, es ist einfacher, mit dem Emulator zu arbeiten, aber das spiegelt nicht die Bedingungen der realen Welt wider. Der richtige Weg ist, Entwickler speziell dafür zu aktivieren.
Charlie Collins
4

Fügen Sie in Ihrem Home-Ordner /.android/avd//config.ini die Zeile hw.keyboard = yes hinzu

Amit Yaron
quelle
2

Nur für den Fall, dass jemand es nützlich findet.

Ich hatte ein Problem mit dem KEYCODE_DPAD_UP , der zum trackBall gehört. Um dies zu lösen, ändern Sie Ihren avdfolder / config.ini hw.trackBall = yes und drücken Sie DEL oder F6

PbxMan
quelle
2

Ein Neustart des Emulators hilft manchmal, wenn die Eingabe nicht verfügbar ist - obwohl die Tastatureingabe für Ihr virtuelles Android-Gerät aktiviert ist.

Zon
quelle
0

Suchen Sie nach dem versteckten .android-Ordner in Ihrem Benutzer-Home-Ordner. Sie können diesen Ordner umbenennen oder löschen, Ihre AVD neu erstellen und den Emulator neu starten. Möglicherweise befindet sich in diesem Ordner eine INI-Datei mit dieser Einstellung.

Eric Cloninger
quelle
Ja, ich habe auch die .android- und avd-Dateien gelöscht. Hat aber nicht geholfen. danke für die Eingabe
epsilonpsi
0

Die Neuerstellung einer AVD mit der Hardwaretastatur + Setzen des Booleschen Werts auf true war die einzige Lösung, die für mich funktioniert hat. Die beiden anderen Hauptlösungen (Terminal oder Bearbeiten einer vorhandenen AVD über die GUI) führten auf meinem Mac zu Abstürzen der Software / des Emulators. Das Erstellen einer neuen AVD führte dazu, dass die Tastatur einwandfrei funktionierte.

Davek804
quelle
0

Hier ist eine Problemumgehung, die tatsächlich für mich funktioniert hat. Es ist die gleiche Lösung wie in der beliebtesten Antwort - fügen Sie einfach hw.keyboard = yes zu config.ini hinzu, aber da dies für mich nicht funktioniert hat, habe ich zusätzlich

  1. Umbenennung in config.ini (jeder Name reicht aus) in consssssfig.ini
  2. Emulator neu gestartet (offensichtlich nicht gestartet)
  3. config.ini wieder umbenannt
  4. (Ich bin mir nicht sicher, ob dies relevant ist.) Ich habe diesen neuen Parameter (hw.keyboard = yes) zu Beginn der Datei config.ini hinzugefügt
Witold
quelle