L'emulatore Android non accetta l'input da tastiera: strumenti SDK rev 20


324

Ho aggiornato gli strumenti SDK alla revisione 20 (da 18) e dall'aggiornamento l'emulatore non sembra accettare input dalla tastiera del laptop. Ma solo usando la tastiera 'soft' dell'emulatore (che appare quando un campo di input è focalizzato).

Ho provato a reinstallare gli strumenti SDK (e l'intero SDK del resto), disinstallato e reinstallato i plug-in Eclipse Android, ricreato i dispositivi di emulazione. Ma nulla di tutto ciò sembra aiutare e mi sta facendo impazzire. È inutile digitare utilizzando il trackpad di un laptop.

Qualcuno ha riscontrato questo problema?


Un effetto collaterale di questo sembra essere che il pulsante di ricerca nell'emulatore non sembra funzionare neanche. Per fortuna, la stessa correzione per la tastiera corregge anche il pulsante di ricerca.
bmaupin,

Ho anche scoperto che per alcune app dovevo andare a Extended Controls-> Send keyboard shortcuts to->s/Emulator controls (default)/Virtual device/
snapfractalpop

Risposte:


468

Aggiornare

A partire da SDK rev 21, Android Virtual Device Manager ha un'interfaccia utente migliorata che risolve questo problema. Ho evidenziato alcune delle impostazioni di configurazione più importanti di seguito:

inserisci qui la descrizione dell'immagine

Se si nota che il soft (telematico) chiavi principali Back, Homeecc mancano l'emulatore è possibile impostare hw.mainKeys=noper consentire loro.

inserisci qui la descrizione dell'immagine

Risposta originale

Anche se la documentazione per gli sviluppatori dice che il supporto della tastiera è abilitato per impostazione predefinita, non sembra essere così in SDK rev 20. Ho abilitato esplicitamente il supporto della tastiera nel file config.ini del mio emulatore e ha funzionato!

Inserisci: hw.keyboard=yes

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

Allo stesso modo, aggiungere hw.dPad=yesse si desidera utilizzare i tasti freccia per navigare nell'elenco delle applicazioni.

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

Su Mac OS e Linux è possibile modificare tutte le configurazioni dell'emulatore con un comando Terminale:

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


In una nota correlata, se nell'emulatore del tablet mancano i pulsanti BACK / HOME, prova a selezionare WXGA800 come skin integrata nell'editor AVD: inserisci qui la descrizione dell'immagine

O impostando manualmente la skin in config.ini:

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

(l'esempio è per API 16)


1
Come indicato nelle altre risposte, è possibile utilizzare anche lo strumento AVD Manager, ma ho riscontrato dei bug che gli impediscono di salvare le modifiche alla configurazione.
James Wald,

C'è qualche impostazione globale che influenzerà tutto il mio avd esistente? Non voglio cambiare circa 20 avd esistenti.
Hoang Tran,

@HoangTran Non esiste una configurazione globale, tuttavia, se si utilizza Mac OS, è possibile utilizzare il comando Terminale che ho aggiunto alla risposta per modificare tutti gli AVD esistenti contemporaneamente.
James Wald,

Purtroppo questa soluzione non ha funzionato per me. Dopo aver eseguito il comando, la tastiera continua a non funzionare nei miei avd.
Justin,

1
La modifica del file di configurazione ha funzionato per me, ma stranamente non vedo l'interfaccia utente mostrata in figura, nonostante abbia la versione 21 dell'SDK.
entro il 1 °

112

Confermato. Ho avuto lo stesso problema dopo l'aggiornamento a Strumenti versione 20. Ho dovuto modificare l'AVD per aggiungere un'opzione come segue:

  1. Da Eclipse, vai a AVD Mananger.
  2. Seleziona il particolare AVD e fai clic su Modifica
  3. Vai alla sezione Hardware, fai clic su Nuovo.
  4. Seleziona il Nome proprietà: Supporto tastiera
  5. Per impostazione predefinita, viene aggiunto con un valore di "no". Basta fare clic sulla colonna del valore e cambiarlo in "sì".
  6. Fare di nuovo clic su Modifica AVD.

Ciò aggiungerà una proprietà hw.keyboard = yes nel file config.ini per l'AVD.

Devi anche impostare hw.mainKeys = yes


19
Assicurati che la colonna del valore perda lo stato attivo prima di fare clic su Modifica AVD o la modifica in "sì" non verrà salvata!
Sitta

1
Ciao, ho seguito le istruzioni precedenti, ma non riesco ancora a inserire alcun testo utilizzando la tastiera del mio PC. Quando faccio doppio clic sull'AVD elencato in AVD Manager, trovo che la modifica abbia esito positivo poiché indica hw.keyboard: sì. Mi sto perdendo qualcosa???
JibW,

3
Suggerisco quanto segue: Elimina l'AVD e crea un AVD completamente nuovo con il supporto della tastiera.
Romin,

59

In Android Studio, apri AVD Manager (Strumenti> Android> AVD Manager). Tocca il pulsante Modifica dell'emulatore: inserisci qui la descrizione dell'immagine

Seleziona "Mostra impostazioni avanzate" inserisci qui la descrizione dell'immagine

Seleziona "Abilita input da tastiera" inserisci qui la descrizione dell'immagine

Fai clic su Fine e avvia l'emulatore per goderti l'input da tastiera.


Ha funzionato per me dopo aver impostato l'input della tastiera enablinh ma chiedendomi come ha smesso di funzionare da solo in primo luogo.
Giusto

3
È così frustrante che questa casella di controllo si deselezioni dopo ogni aggiornamento dell'emulatore :(
Misha Akopov

2
Nel mio caso, la tastiera era abilitata, ma non funzionava nell'emulatore. La correzione è disabilitare la tastiera, avviare l'emulatore, terminare l'emulatore, abilitare la tastiera.
Beroal,

15

Cerca in AVD Manager, seleziona AVD e fai clic su Modifica. Nella sezione Hardware: fai clic su "Nuovo" e cerca "Supporto tastiera" e aggiungi con il pulsante OK e imposta il valore su "sì" e salva le modifiche con "Modifica AVD"


la cosa strana è che, quando imposto questo valore su Sì, il valore torna su No, comunque
eseguirò

Ho preferito questa risposta. L'uso di AVD Manager è una soluzione più memorabile rispetto alla modifica del file config.ini.
Seth,

10

Google voleva dare un po 'più di mal di testa agli sviluppatori.

Quindi, quello che devi fare ora è modificare il tuo AVD e aggiungere "Supporto tastiera" nella sezione Hardware e cambiare il valore in "Sì"


1
Non ha funzionato per me, il valore di supporto della tastiera avd di "yes" non rimane salvato, torna a "no".
Justin,

In realtà Google voleva migliorare le cose. La maggior parte dei dispositivi ora non ha tastiere hardware, quindi l'impostazione predefinita dovrebbe essere nessuna / disabilitata. Sì, è più facile lavorare con l'emulatore con uno, ma questo non rispecchia le condizioni del mondo reale. Il modo corretto è fare in modo che gli sviluppatori lo abilitino specificamente.
Charlie Collins,

4

Nella tua cartella home /.android/avd//config.ini aggiungi la riga hw.keyboard = yes


2

Nel caso in cui qualcuno lo trovi utile.

Ho avuto un problema con KEYCODE_DPAD_UP che appartiene al trackBall. per risolvere questo cambiamento avdfolder / config.ini hw.trackBall = yes e premere DEL o F6


2

Il riavvio dell'emulatore aiuta a volte quando la digitazione non è disponibile, nonostante l'input da tastiera sia abilitato per il tuo dispositivo virtuale Android.


0

Cerca la cartella nascosta .android nella cartella home dell'utente. È possibile rinominare o eliminare questa cartella, ricreare l'AVD e riavviare l'emulatore. Potrebbe esserci un file .ini in quella cartella che ha quell'impostazione mung.


sì, ho eliminato anche i file .android e avd .. non ha aiutato però. grazie per l'input
epsilonpsi,

0

Ricreare un AVD con Hardware Keyboard + impostando il valore booleano su true è stata l'unica soluzione che ha funzionato per me; le altre due soluzioni principali (terminale o modifica di un AVD esistente tramite GUI) hanno provocato crash del software / emulatore sul mio Mac. La creazione di un nuovo AVD ha permesso alla tastiera di funzionare perfettamente.


0

Ecco qualche soluzione alternativa che ha funzionato per me, è la stessa soluzione della risposta più popolare - basta aggiungere hw.keyboard = yes a config.ini ma poiché questo non ha funzionato per me

  1. rinominato config.ini (qualsiasi nome farà) a qualcosa come consssssfig.ini
  2. emulatore riavviato (ovviamente non è stato avviato)
  3. rinominato nuovamente config.ini
  4. (Non sono sicuro se pertinente) Ho aggiunto questo nuovo parametro (hw.keyboard = yes) all'inizio del file config.ini
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.