L'émulateur Android ne prend pas de saisie au clavier - SDK tools rev 20

324

J'ai mis à niveau les outils du SDK vers la révision 20 (à partir de 18) et depuis la mise à niveau, l'émulateur ne semble pas accepter les entrées du clavier de l'ordinateur portable. Mais uniquement en utilisant le propre clavier «doux» de l'émulateur (qui apparaît lorsqu'un champ de saisie est focalisé).

J'ai essayé de réinstaller les outils du SDK (et tout le SDK d'ailleurs), j'ai désinstallé et réinstallé les plug-ins Eclipse Android, recréé des émulateurs. Mais rien de tout cela ne semble aider et ça me rend fou. Il est inutile de saisir le pavé tactile d'un ordinateur portable.

est-ce que quelqu'un à rencontré ce problème?

epsilonpsi
la source
Un effet secondaire de cela semble être que le bouton de recherche dans l'émulateur ne semble pas fonctionner non plus. Heureusement, le même correctif pour le clavier corrige également le bouton de recherche.
bmaupin
J'ai également constaté que pour certaines applications, je devais aller à Extended Controls-> Send keyboard shortcuts to->s/Emulator controls (default)/Virtual device/
snapfractalpop

Réponses:

468

Mettre à jour

Depuis la version 21 du SDK, le gestionnaire de périphériques virtuels Android dispose d'une interface utilisateur améliorée qui résout ce problème. J'ai mis en évidence certains des paramètres de configuration les plus importants ci-dessous:

entrez la description de l'image ici

Si vous remarquez que les touches principales douce (sur écran) Back, Homeetc. sont absents de votre émulateur , vous pouvez définir hw.mainKeys=nopour les activer.

entrez la description de l'image ici

Réponse originale

Même si la documentation du développeur indique que la prise en charge du clavier est activée par défaut, cela ne semble pas être le cas dans le SDK rev 20. J'ai explicitement activé la prise en charge du clavier dans le fichier config.ini de mon émulateur et cela a fonctionné!

Ajouter: hw.keyboard=yes

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

De même, ajoutez hw.dPad=yessi vous souhaitez utiliser les touches fléchées pour naviguer dans la liste des applications.

Référence: http://developer.android.com/tools/devices/managing-avds-cmdline.html#hardwareopts

Sous Mac OS et Linux, vous pouvez modifier toutes vos configurations d'émulateur avec une seule commande de terminal:

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


Sur une note connexe, si votre émulateur de tablette ne contient pas les boutons BACK / HOME, essayez de sélectionner WXGA800 comme skin intégré dans l'éditeur AVD: entrez la description de l'image ici

Ou en définissant manuellement l'habillage dans config.ini:

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

(l'exemple concerne l'API 16)

James Wald
la source
1
Comme les autres réponses mentionnées, vous pouvez également utiliser l'outil AVD Manager, mais j'ai rencontré des bogues qui l'empêchent d'enregistrer les modifications de configuration.
James Wald
Y a-t-il un paramètre global qui affectera tous mes avd existants? Je ne veux pas changer environ 20 avd existants.
Hoang Tran
@HoangTran Il n'y a pas de configuration globale, cependant, si vous utilisez Mac OS, vous pouvez utiliser la commande Terminal que j'ai ajoutée à la réponse pour modifier tous les AVD existants à la fois.
James Wald
Malheureusement, cette solution n'a pas fonctionné pour moi. Après avoir exécuté la commande, le clavier ne fonctionne toujours pas dans mes avd.
Justin
1
L'édition du fichier de configuration a fonctionné pour moi, mais bizarrement je ne vois pas l'interface utilisateur montrée dans l'image, malgré la version 21 du SDK.
offby1
112

Confirmé. J'ai eu le même problème après la mise à niveau vers Tools version 20. J'ai dû modifier l'AVD pour ajouter une option comme suit:

  1. Depuis Eclipse, accédez à AVD Mananger.
  2. Sélectionnez l'AVD particulier et cliquez sur Modifier
  3. Accédez à la section Matériel, cliquez sur Nouveau.
  4. Sélectionnez le nom de la propriété: prise en charge du clavier
  5. Par défaut, il est ajouté avec une valeur «non». Cliquez simplement sur la colonne de valeur et changez-la en «oui».
  6. Cliquez à nouveau sur Modifier AVD.

Cela ajoutera une propriété hw.keyboard = yes dans le fichier config.ini pour l'AVD.

Vous devez également définir hw.mainKeys = yes

Romin
la source
19
Assurez-vous que la colonne de valeur perd le focus avant de cliquer sur Modifier AVD ou le changement à «oui» ne sera pas enregistré!
Sittelle du
1
Bonjour, j'ai suivi les instructions ci-dessus, mais je ne peux toujours pas insérer de texte à l'aide du clavier de mon PC. Lorsque je double-clique sur l'AVD répertorié sous AVD Manager, je constate que la modification est réussie car elle indique hw.keyboard: oui. Suis-je en train de manquer quelque chose ???
JibW
3
Je suggère ce qui suit: Supprimez l'AVD et créez un AVD complètement nouveau avec le support du clavier.
Romin
59

Dans Android Studio, ouvrez AVD Manager (Outils> Android> AVD Manager). Appuyez sur le bouton Modifier de l'émulateur: entrez la description de l'image ici

Sélectionnez "Afficher les paramètres avancés" entrez la description de l'image ici

Cochez "Activer la saisie au clavier" entrez la description de l'image ici

Cliquez sur Terminer et démarrez l'émulateur pour profiter de la saisie au clavier.

Hong
la source
A fonctionné pour moi après avoir activé le paramètre de saisie au clavier, mais se demandant comment il a cessé de fonctionner par lui-même en premier lieu.
Justcurious
3
C'est tellement frustrant que cette case à cocher se décoche après chaque mise à jour de l'émulateur :(
Misha Akopov
2
Dans mon cas, le clavier était activé, mais ne fonctionnait pas dans l'émulateur. Le correctif consiste à désactiver le clavier, démarrer l'émulateur, terminer l'émulateur, activer le clavier.
Beroal
15

Regardez dans AVD Manager, sélectionnez l'AVD et cliquez sur Modifier. Dans la section Matériel: cliquez sur "Nouveau" et recherchez "Prise en charge du clavier" et ajoutez avec le bouton OK et définissez la valeur sur "oui" et enregistrez les modifications avec "Modifier AVD"

Joel Pelaez
la source
chose étrange est que lorsque je définit cette valeur sur oui, elle force la valeur à non, de toute façon, testera à nouveau avec un nouvel appareil
epsilonpsi
J'ai préféré cette réponse. L'utilisation du gestionnaire AVD est une solution plus mémorable que la modification du fichier config.ini.
Seth
10

Google voulait donner plus de maux de tête aux développeurs.

Donc, ce que vous devez faire maintenant, c'est éditer votre AVD et ajouter "Prise en charge du clavier" pour cela dans la section Matériel et changer la valeur en "Oui"

Vincy
la source
1
Cela n'a pas fonctionné pour moi, la valeur de prise en charge du clavier avd "oui" ne reste pas enregistrée, elle revient toujours à "non".
Justin
En fait, Google voulait améliorer les choses. La plupart des appareils ne disposent désormais pas de claviers matériels, la valeur par défaut doit donc être aucun / désactivé. Oui, il est plus facile de travailler avec l'émulateur avec un seul, mais cela ne reflète pas les conditions du monde réel. La bonne façon est de faire en sorte que les développeurs l'activent spécifiquement.
Charlie Collins
4

Dans votre dossier personnel /.android/avd//config.ini ajoutez la ligne hw.keyboard = yes

Amit Yaron
la source
2

Juste au cas où quelqu'un le trouverait utile.

J'ai eu un problème avec le KEYCODE_DPAD_UP il appartient au trackBall. pour résoudre ce problème, changez votre avdfolder / config.ini hw.trackBall = yes et appuyez sur DEL ou F6

PbxMan
la source
2

Le redémarrage de l'émulateur aide parfois lorsque la saisie n'est pas disponible - malgré la saisie au clavier activée pour votre appareil virtuel Android.

Zon
la source
0

Recherchez le dossier .android caché dans votre dossier de départ utilisateur. Vous pouvez renommer ou supprimer ce dossier, recréer votre AVD et redémarrer l'émulateur. Il se peut qu'il y ait un fichier .ini dans ce dossier qui a ce paramètre munged.

Eric Cloninger
la source
oui j'ai supprimé les fichiers .android et avd aussi .. n'a pas aidé cependant. merci pour l'entrée
epsilonpsi
0

Recréer un AVD avec le clavier matériel + définir le booléen sur vrai a été la seule solution qui a fonctionné pour moi; les deux autres solutions principales (terminal ou modification d'un AVD existant via GUI) ont toutes deux entraîné des plantages logiciels / émulateurs sur mon Mac. Faire un nouvel AVD a permis au clavier de fonctionner très bien.

Davek804
la source
0

Voici une solution de contournement qui a réellement fonctionné pour moi, c'est la même solution que dans la réponse la plus populaire - ajoutez simplement hw.keyboard = yes à config.ini mais comme cela n'a pas fonctionné pour moi, j'ai en plus

  1. renommé config.ini (n'importe quel nom fera l'affaire) en quelque chose comme consssssfig.ini
  2. émulateur redémarré (évidemment, il n'a pas démarré)
  3. renommé config.ini à nouveau
  4. (Je ne sais pas si c'est pertinent) J'ai ajouté ce nouveau paramètre (hw.keyboard = yes) au début du fichier config.ini
Witold
la source