Emulator Android tidak mengambil input keyboard - alat SDK rev 20

324

Saya telah memutakhirkan alat SDK ke revisi 20 (dari 18) dan sejak pemutakhiran, emulator tampaknya tidak menerima input dari keyboard laptop. Tetapi hanya menggunakan keyboard 'lunak' emulator sendiri (yang muncul ketika bidang input difokuskan).

Saya sudah mencoba menginstal ulang alat SDK (dan seluruh SDK dalam hal ini), menghapus dan menginstal ulang plugin Android Eclipse, menciptakan kembali perangkat emulator. Tapi tidak ada yang tampaknya membantu dan itu membuatku marah. Tidak ada gunanya untuk masuk menggunakan trackpad laptop.

Pernahkah seseorang menjumpai masalah ini?

epsilonpsi
sumber
Efek samping dari ini tampaknya adalah tombol pencarian di emulator juga tidak berfungsi. Untungnya, perbaikan yang sama untuk keyboard juga memperbaiki tombol pencarian.
bmaupin
Saya juga menemukan bahwa untuk beberapa aplikasi saya harus pergi ke Extended Controls-> Send keyboard shortcuts to->s/Emulator controls (default)/Virtual device/
snapfractalpop

Jawaban:

468

Memperbarui

Pada SDK rev 21 Android Virtual Device Manager memiliki UI yang ditingkatkan yang menyelesaikan masalah ini. Saya telah menyoroti beberapa pengaturan konfigurasi yang lebih penting di bawah ini:

masukkan deskripsi gambar di sini

Jika Anda melihat bahwa lunak (screen-based) kunci utama Back, Homedll yang hilang dari emulator Anda Anda dapat mengatur hw.mainKeys=nountuk memungkinkan mereka.

masukkan deskripsi gambar di sini

Jawaban asli

Meskipun dokumentasi pengembang mengatakan dukungan keyboard diaktifkan secara default, tampaknya tidak seperti itu di SDK rev 20. Saya secara eksplisit mengaktifkan dukungan keyboard di file config.ini emulator saya dan itu berhasil!

Menambahkan: hw.keyboard=yes

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

Demikian pula, tambahkan hw.dPad=yesjika Anda ingin menggunakan tombol panah untuk menavigasi daftar aplikasi.

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

Di Mac OS dan Linux Anda dapat mengedit semua konfigurasi emulator Anda dengan satu perintah Terminal:

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


Pada catatan terkait, jika emulator tablet Anda kehilangan tombol BACK / HOME, coba pilih WXGA800 sebagai kulit Bawaan dalam editor AVD: masukkan deskripsi gambar di sini

Atau dengan mengatur kulit secara manual di config.ini:

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

(contoh untuk API 16)

James Wald
sumber
1
Seperti jawaban lain yang disebutkan, Anda dapat menggunakan alat AVD Manager juga, tetapi saya telah mengalami bug yang mencegahnya menyimpan perubahan konfigurasi.
James Wald
Apakah ada pengaturan global yang akan memengaruhi semua AVD saya yang ada? Saya tidak ingin mengubah sekitar 20 AVD yang ada.
Hoang Tran
@ HoangTran Tidak ada konfigurasi global, namun, jika Anda menggunakan Mac OS Anda dapat menggunakan perintah Terminal yang saya tambahkan ke jawaban untuk mengedit semua AVD yang ada sekaligus.
James Wald
Sayangnya solusi ini tidak berhasil untuk saya. Setelah menjalankan perintah, keyboard masih tidak berfungsi di AVD saya.
Justin
1
Mengedit file konfigurasi berhasil untuk saya, tetapi anehnya saya tidak melihat UI yang ditunjukkan pada gambar, meskipun memiliki versi 21 dari SDK.
offby1
112

Dikonfirmasi Saya memiliki masalah yang sama setelah memutakhirkan ke Alat versi 20. Saya harus Edit AVD untuk menambahkan opsi sebagai berikut:

  1. Dari Eclipse, Pergi ke AVD Mananger.
  2. Pilih AVD tertentu dan klik Edit
  3. Buka bagian Perangkat Keras, klik Baru.
  4. Pilih Nama Properti: Dukungan Keyboard
  5. Secara default, ini ditambahkan dengan nilai 'tidak'. Cukup klik pada kolom nilai dan ubah ke 'ya'.
  6. Klik Edit AVD lagi.

Ini akan menambahkan properti hw.keyboard = ya dalam file config.ini untuk AVD.

Anda juga harus mengatur hw.mainKeys = ya

Romin
sumber
19
Pastikan kolom nilai kehilangan fokus sebelum mengklik Edit AVD atau perubahan 'ya' tidak akan disimpan!
Nuthatch
1
Hai, saya mengikuti instruksi di atas, tetapi masih tidak bisa memasukkan teks apa pun menggunakan papan kunci PC saya. Ketika saya mengklik dua kali pada AVD yang terdaftar di bawah AVD Manager, saya menemukan bahwa edit berhasil karena menunjukkan hw.keyboard: ya. Apakah saya melewatkan sesuatu ???
JibW
3
Saya menyarankan yang berikut ini: Hapus AVD dan buat AVD yang sepenuhnya baru dengan dukungan Keyboard.
Romin
59

Di Android Studio, buka AVD Manager (Alat> Android> AVD Manager). Ketuk tombol Edit emulator: masukkan deskripsi gambar di sini

Pilih "Tampilkan Pengaturan Lanjut" masukkan deskripsi gambar di sini

Centang "Aktifkan input keyboard" masukkan deskripsi gambar di sini

Klik Selesai dan mulai emulator untuk menikmati input keyboard.

Hong
sumber
Bekerja untuk saya setelah pengaturan input keyboard enablinh tetapi bertanya-tanya bagaimana itu berhenti bekerja dengan sendirinya di tempat pertama.
Justcurious
3
Sangat menyebalkan bahwa kotak centang ini tidak dicentang sendiri setelah setiap pembaruan emulator :(
Misha Akopov
2
Dalam kasus saya, keyboard diaktifkan, tetapi tidak berfungsi di emulator. Cara mengatasinya adalah menonaktifkan keyboard, memulai emulator, mengakhiri emulator, mengaktifkan keyboard.
beroal
15

Lihat di AVD Manager, pilih AVD dan klik di Edit. Di bagian Perangkat Keras: klik "Baru" dan cari "Dukungan keyboard" dan tambahkan dengan tombol OK dan atur nilainya menjadi "ya" dan simpan perubahan dengan "Edit AVD"

Joel Pelaez
sumber
anehnya, ketika saya menetapkan nilai ini ke ya, itu memaksa nilai kembali ke tidak, lagi pula akan menguji dengan Perangkat baru lagi
epsilonpsi
Saya lebih suka jawaban ini. Menggunakan manajer AVD adalah solusi yang lebih mudah diingat daripada mengubah file config.ini.
Seth
10

Google ingin memberikan lebih banyak sakit kepala kepada para pengembang.

Jadi, apa yang harus Anda lakukan sekarang adalah mengedit AVD Anda dan menambahkan "Dukungan Keyboard" untuk itu di bagian Hardware dan ubah nilainya menjadi "Ya"

Vincy
sumber
1
Tidak berfungsi untuk saya, nilai dukungan keyboard avd dari "ya" tidak tetap disimpan, itu tetap kembali menjadi "tidak".
Justin
Sebenarnya Google ingin memperbaiki keadaan. Sebagian besar perangkat sekarang tidak memiliki keyboard perangkat keras, jadi defaultnya harus tidak ada / dinonaktifkan. Ya, lebih mudah untuk bekerja dengan emulator dengan satu, tapi itu tidak mencerminkan kondisi dunia nyata. Cara yang benar adalah membuat dev secara khusus mengaktifkannya.
Charlie Collins
4

Di folder rumah Anda /.android/avd//config.ini tambahkan baris hw.keyboard = ya

Amit Yaron
sumber
2

Hanya untuk berjaga-jaga jika ada yang merasa berguna.

Saya punya masalah dengan KEYCODE_DPAD_UP itu milik trackBall. untuk menyelesaikan ini ubah avdfolder / config.ini hw.trackBall = ya dan tekan DEL atau F6

PbxMan
sumber
2

Memulai ulang emulator kadang-kadang membantu ketika mengetik tidak tersedia - meskipun input keyboard diaktifkan untuk Perangkat Virtual Android Anda.

Zon
sumber
0

Cari folder .android tersembunyi di folder home pengguna Anda. Anda dapat mengganti nama atau menghapus folder ini, membuat ulang AVD Anda, dan memulai kembali emulator. Bisa jadi ada file .ini di folder itu yang memiliki pengaturan munged.

Eric Cloninger
sumber
ya saya memang menghapus file .android dan AVD juga .. tidak membantu sekalipun. terima kasih atas masukannya
epsilonpsi
0

Membuat AVD dengan Keyboard Hardware + menyetel boolean menjadi true adalah satu-satunya solusi yang bekerja untuk saya; dua solusi utama lainnya (terminal atau mengedit AVD yang ada melalui GUI) keduanya mengakibatkan perangkat lunak / emulator macet di Mac saya. Membuat AVD baru menghasilkan keyboard berfungsi dengan baik.

Davek804
sumber
0

Berikut adalah beberapa solusi yang benar-benar bekerja untuk saya, ini adalah solusi yang sama seperti pada jawaban paling populer - tambahkan saja hw.keyboard = ya ke config.ini tetapi karena ini tidak bekerja untuk saya, saya juga menambahkan

  1. berganti nama menjadi config.ini (nama apa pun akan digunakan) menjadi sesuatu seperti consssssfig.ini
  2. restart emulator (jelas itu tidak dimulai)
  3. berganti nama menjadi config.ini kembali
  4. (Saya tidak yakin jika relevan) Saya menambahkan parameter baru ini (hw.keyboard = ya) pada awal file config.ini
Witold
sumber