Android emülatörü klavye girişi almıyor - SDK araçları rev 20


324

SDK araçlarını revizyon 20'ye (18'den) yükselttim ve yükseltmeden bu yana, emülatör dizüstü bilgisayarın klavyesinden girişi kabul etmiyor gibi görünüyor. Ancak yalnızca emülatörün kendi 'yumuşak' klavyesini kullanarak (bir giriş alanı odaklandığında görünür).

SDK araçlarını (ve bu konunun tüm SDK'sını) yeniden yüklemeyi, Eclipse Android eklentilerini, yeniden oluşturulmuş emülatör cihazlarını kaldırmayı ve yeniden yüklemeyi denedim. Ama bunların hiçbiri işe yaramıyor ve beni deli ediyor. Bir dizüstü bilgisayarın izleme dörtgenini kullanarak giriş yapmak umutsuz.

Kimse bu problemle karşılaştı mı?


Bunun bir yan etkisi, emülatördeki arama düğmesinin de çalışmıyor gibi görünüyor. Neyse ki, klavye için aynı düzeltme arama düğmesini de düzeltir.
bmaupin

Ayrıca bazı uygulamalar için gitmek zorunda olduğumu buldum Extended Controls-> Send keyboard shortcuts to->s/Emulator controls (default)/Virtual device/
snapfractalpop

Yanıtlar:


468

Güncelleme

SDK rev 21'den itibaren Android Sanal Aygıt Yöneticisi'nin bu sorunu çözen geliştirilmiş bir kullanıcı arayüzü vardır. Aşağıdaki daha önemli yapılandırma ayarlarından bazılarını vurguladım:

resim açıklamasını buraya girin

Ana tuşlar yumuşak (ekran tabanlı) fark ederseniz Back, Homevb öykünücünüzle eksik Belirleyebileceğiniz hw.mainKeys=nosağlamaktır.

resim açıklamasını buraya girin

Orijinal cevap

Geliştirici belgeleri klavye desteğinin varsayılan olarak etkinleştirildiğini söylese de SDK rev 20'de böyle görünmüyor. Öykünücümün config.ini dosyasında açıkça klavye desteğini etkinleştirdim ve işe yaradı!

Ekle: hw.keyboard=yes

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

Benzer şekilde, hw.dPad=yesuygulama listesinde gezinmek için ok tuşlarını kullanmak istiyorsanız ekleyin .

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

Mac OS ve Linux'ta tüm emülatör yapılandırmalarınızı tek bir Terminal komutuyla düzenleyebilirsiniz:

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


İlgili bir notta, tablet öykünücünüzde BACK / HOME düğmeleri eksikse , AVD düzenleyicide Dahili kaplama olarak WXGA800'ü seçmeyi deneyin : resim açıklamasını buraya girin

Veya, deriyi config.ini dosyasında el ile ayarlayarak:

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

(örnek API 16 için geçerlidir)


1
Bahsedilen diğer cevaplar gibi AVD Manager aracını da kullanabilirsiniz, ancak yapılandırma değişikliklerini kaydetmesini engelleyen hatalar yaşadım.
James Wald

Mevcut tüm AVD'imi etkileyecek herhangi bir genel ayar var mı? Mevcut yaklaşık 20 avd'yi değiştirmek istemiyorum.
Hoang Tran

@HoangTran Genel bir yapılandırma yoktur, ancak Mac OS kullanıyorsanız, tüm AVD'leri aynı anda düzenlemek için cevaba eklediğim Terminal komutunu kullanabilirsiniz.
James Wald

Ne yazık ki bu çözüm benim için işe yaramadı. Komutu çalıştırdıktan sonra klavye hala avd'lerimde çalışmıyor.
Justin

1
Yapılandırma dosyasını düzenlemek benim için çalıştı, ancak garip bir şekilde SDK'nın 21 sürümüne rağmen resimde gösterilen kullanıcı arayüzünü göremiyorum.
offby1

112

Onaylanmış. Araçlar sürüm 20'ye yükselttikten sonra aynı sorunu yaşadım. AVD'yi aşağıdaki gibi bir seçenek eklemek için Düzenle:

  1. Eclipse'den AVD Mananger'a gidin.
  2. Belirli bir AVD'yi seçin ve Düzenle'ye tıklayın
  3. Donanım bölümüne gidin, Yeni'ye tıklayın.
  4. Mülk Adı Seçin: Klavye Desteği
  5. Varsayılan olarak, 'hayır' değeri ile eklenir. Değer sütununa tıklayın ve 'evet' olarak değiştirin.
  6. AVD'yi tekrar düzenle'yi tıklayın.

Bu, AVD için config.ini dosyasına hw.keyboard = yes özelliği ekler.

Ayrıca hw.mainKeys = yes ayarlamanız gerekir


19
AVD'yi Düzenle'yi tıklamadan önce değer sütununun odağını kaybettiğinden emin olun, aksi takdirde 'evet'e yapılan değişiklik kaydedilmez!
Nuthatch

1
Merhaba, yukarıdaki talimatları izledim, ancak hala PC tuş kartımı kullanarak metin ekleyemiyorum. AVD Yöneticisi altında listelenen AVD'ye çift tıkladığımda, düzenlemenin hw.keyboard: yes'i gösterdiğinden başarılı olduğunu görüyorum. Bir şey mi kaçırıyorum ???
JibW

3
Aşağıdakileri öneririm: AVD'yi silin ve Klavye desteğiyle tamamen yeni bir AVD oluşturun.
Romin

59

Android Studio'da AVD Manager'ı açın (Araçlar> Android> AVD Yöneticisi). Emülatörün Düzenle düğmesine dokunun: resim açıklamasını buraya girin

"Gelişmiş Ayarları Göster" i seçin resim açıklamasını buraya girin

"Klavye girişini etkinleştir" seçeneğini işaretleyin resim açıklamasını buraya girin

Son'u tıklayın ve klavye girişinin keyfini çıkarmak için öykünücüyü başlatın.


Klavye giriş ayarını etkinleştirdikten sonra ama ilk etapta nasıl çalışmayı bıraktığını merak ettikten sonra benim için çalıştı.
Justcurious

3
Her emülatör güncellemesinden sonra bu onay kutusunun işaretini kaldırmak çok sinir bozucu :(
Misha Akopov

2
Benim durumumda, klavye etkinleştirildi, ancak emülatörde çalışmadı. Düzeltme, klavyeyi devre dışı bırakmak, öykünücüyü başlatmak, öykünücüyü sonlandırmak, klavyeyi etkinleştirmektir.
beroal

15

AVD Manager'a bakın, AVD'yi seçin ve Düzenle'ye tıklayın. Donanım bölümünde: "Yeni" yi tıklayın ve "Klavye desteği" ni arayın ve Tamam düğmesiyle ekleyin ve değeri "evet" olarak ayarlayın ve "AVD'yi Düzenle" ile değişiklikleri kaydedin


garip bir şey, bu değeri evet olarak ayarladığımda, değeri tekrar hayır olarak zorlar, yine de yeni bir
cihazla

Bu cevabı tercih ettim. AVD yöneticisini kullanmak, config.ini dosyasını değiştirmekten daha unutulmaz bir çözümdür.
Seth

10

Google, geliştiricilere biraz daha fazla baş ağrısı vermek istedi.

Yani, şimdi yapmanız gereken AVD'nizi düzenlemek ve Donanım bölümüne bunun için "Klavye Desteği" eklemek ve değeri "Evet" olarak değiştirmek


1
Benim için çalışmadı, "evet" avd klavye destek değeri kaydedilmez, "hayır" geri dönmeye devam ediyor.
Justin

Aslında Google bazı şeyleri geliştirmek istedi. Artık çoğu aygıtta donanım klavyesi bulunmadığından, varsayılan ayarın hiçbiri / devre dışı olması gerekir. Evet, emülatörle biriyle çalışmak daha kolay, ancak bu gerçek dünya koşullarını yansıtmıyor. Doğru yol, geliştiricilerin özellikle etkinleştirmesini sağlamaktır.
Charlie Collins

4

Ana klasörünüze /.android/avd//config.ini satırınıza hw.keyboard = yes satırını ekleyin


2

Birisinin onu yararlı bulması durumunda.

TrackBall'a ait olan KEYCODE_DPAD_UP ile ilgili bir sorunum vardı . bu değişikliği çözmek için avdfolder / config.ini hw.trackBall = evet ve DEL veya F6 tuşlarına basın


2

Öykünücüyü yeniden başlatmaAndroid Sanal Aygıtınız için klavye girişi etkinleştirilmesine rağmen bazen yazı yazarken bazen yardımcı olmaz.


0

Kullanıcı ana klasörünüzdeki gizli .android klasörünü bulun. Bu klasörü yeniden adlandırabilir veya silebilir, AVD'nizi yeniden oluşturabilir ve öykünücüyü yeniden başlatabilirsiniz. Bu klasörde o ayarı munged olan bir .ini dosyası olabilir.


evet ben de .android ve avd dosyalarını sildim .. olsa da yardımcı olmadı. giriş için teşekkürler
epsilonpsi

0

AVD'yi Donanım Klavyesi ile yeniden oluşturmak + boole'i ​​true olarak ayarlamak benim için çalışan tek çözümdü; diğer iki ana çözüm (terminal veya mevcut bir AVD'yi GUI üzerinden düzenleme) Mac bilgisayarımda yazılım / emülatör çökmesine neden oldu. Yeni bir AVD yapmak, klavyenin iyi çalışmasına neden oldu.


0

İşte benim için gerçekten işe yarayan bazı geçici çözüm, en popüler yanıttaki ile aynı çözümdür - sadece config.ini'ye hw.keyboard = yes'i ekleyin, ancak bu benim için çalışmadığı için ek olarak

  1. cons.ssfig.ini gibi bir adla config.ini (herhangi bir ad yapacak) olarak yeniden adlandırıldı
  2. yeniden başlatılan emülatör (belli ki başlamadı)
  3. config.ini dosyasını yeniden adlandırdı
  4. (İlgili olup olmadığından emin değilim) config.ini dosyasının başlangıcında bu yeni parametreyi (hw.keyboard = yes) ekledim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.