Trình giả lập Android không lấy đầu vào bàn phím - Công cụ SDK rev 20


324

Tôi đã nâng cấp các công cụ SDK lên phiên bản 20 (từ 18) và kể từ khi nâng cấp, trình giả lập dường như không chấp nhận đầu vào từ bàn phím của máy tính xách tay. Nhưng chỉ sử dụng bàn phím 'mềm' của trình giả lập (xuất hiện khi trường đầu vào được tập trung).

Tôi đã thử cài đặt lại các công cụ SDK (và toàn bộ SDK cho vấn đề đó), gỡ cài đặt và cài đặt lại các plugin Android Eclipse, các thiết bị giả lập được tạo lại. Nhưng dường như không có gì giúp được và nó khiến tôi phát điên. Thật vô vọng khi sử dụng bàn di chuột của máy tính xách tay.

Có ai gặp phải vấn đề này?


Một tác dụng phụ của điều này dường như là nút tìm kiếm trong trình giả lập dường như cũng không hoạt động. Rất may, cùng một sửa chữa cho bàn phím cũng sửa nút tìm kiếm.
bmaupin

Tôi cũng đã thấy rằng đối với một số ứng dụng tôi phải truy cập Extended Controls-> Send keyboard shortcuts to->s/Emulator controls (default)/Virtual device/
snapfractalpop vào

Câu trả lời:


468

Cập nhật

Kể từ SDK rev 21, Trình quản lý thiết bị ảo Android có giao diện người dùng được cải thiện để giải quyết vấn đề này. Tôi đã nhấn mạnh một số cài đặt cấu hình quan trọng hơn bên dưới:

nhập mô tả hình ảnh ở đây

Nếu bạn nhận thấy rằng phần mềm (dựa trên màn hình) Chìa khóa chính Back, Homevv đang thiếu từ giả lập của bạn, bạn có thể thiết lập hw.mainKeys=nođể kích hoạt chúng.

nhập mô tả hình ảnh ở đây

Câu trả lời gốc

Mặc dù tài liệu dành cho nhà phát triển nói rằng hỗ trợ bàn phím được bật theo mặc định nhưng dường như không phải như vậy trong SDK rev 20. Tôi đã bật hỗ trợ bàn phím một cách rõ ràng trong tệp config.ini của trình giả lập của tôi và nó đã hoạt động!

Thêm vào: hw.keyboard=yes

Đến: ~/.android/avd/<emulator-device-name>.avd/config.ini

Tương tự, thêm hw.dPad=yesnếu bạn muốn sử dụng các phím mũi tên để điều hướng danh sách ứng dụng.

Tham khảo: http://developer.android.com/tools/devices/managing-avds-cmdline.html#hardwareopts

Trên Mac OS và Linux, bạn có thể chỉnh sửa tất cả các cấu hình trình giả lập của mình bằng một lệnh Terminal:

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


Trên một lưu ý liên quan, nếu trình giả lập máy tính bảng của bạn thiếu các nút BACK / HOME, hãy thử chọn WXGA800 làm giao diện tích hợp trong trình chỉnh sửa AVD: nhập mô tả hình ảnh ở đây

Hoặc bằng cách cài đặt thủ công giao diện trong config.ini:

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

(ví dụ dành cho API 16)


1
Như các câu trả lời khác đã đề cập, bạn cũng có thể sử dụng công cụ AVD Manager nhưng tôi đã gặp phải các lỗi khiến nó không thể lưu các thay đổi cấu hình.
James Wald

Có bất kỳ thiết lập toàn cầu nào sẽ ảnh hưởng đến tất cả avd hiện tại của tôi không? Tôi không muốn thay đổi khoảng 20 avd hiện có.
Hoàng Trần

@HoangTran Không có cấu hình toàn cầu, tuy nhiên, nếu bạn đang sử dụng Mac OS, bạn có thể sử dụng lệnh Terminal mà tôi đã thêm vào câu trả lời để chỉnh sửa tất cả các AVD hiện có cùng một lúc.
James Wald

Đáng buồn thay, giải pháp này đã không làm việc cho tôi. Sau khi chạy lệnh, bàn phím vẫn không hoạt động trong avd của tôi.
Justin

1
Chỉnh sửa tệp cấu hình làm việc cho tôi, nhưng kỳ lạ là tôi không thấy UI được hiển thị trong ảnh, mặc dù có phiên bản 21 của SDK.
off1

112

Đã xác nhận. Tôi gặp vấn đề tương tự sau khi nâng cấp lên Công cụ phiên bản 20. Tôi đã phải Chỉnh sửa AVD để thêm tùy chọn như sau:

  1. Từ Eclipse, đi đến AVD Mananger.
  2. Chọn AVD cụ thể và nhấp vào Chỉnh sửa
  3. Đi đến phần Phần cứng, nhấp vào Mới.
  4. Chọn tên thuộc tính: Hỗ trợ bàn phím
  5. Theo mặc định, nó được thêm vào với giá trị 'không'. Chỉ cần nhấp vào cột giá trị và thay đổi thành 'có'.
  6. Nhấp vào Chỉnh sửa AVD một lần nữa.

Điều này sẽ thêm một thuộc tính hw.keyboard = yes trong tệp config.ini cho AVD.

Bạn cũng phải đặt hw.mainKeys = yes


19
Đảm bảo cột giá trị mất tiêu điểm trước khi nhấp vào Chỉnh sửa AVD hoặc thay đổi thành 'có' sẽ không được lưu!
Nuthatch

1
Xin chào, tôi đã làm theo các hướng dẫn ở trên, nhưng vẫn không thể chèn bất kỳ văn bản nào bằng bảng phím PC của mình. Khi tôi nhấp đúp chuột vào AVD được liệt kê trong Trình quản lý AVD, tôi thấy rằng chỉnh sửa thành công vì nó chỉ ra hw.keyboard: có. Tui bỏ lỡ điều gì vậy???
JibW

3
Tôi đề nghị như sau: Xóa AVD và tạo AVD hoàn toàn mới với sự hỗ trợ Bàn phím.
Romin

59

Trong Android Studio, mở Trình quản lý AVD (Công cụ> Android> Trình quản lý AVD). Nhấn vào nút Chỉnh sửa của trình giả lập: nhập mô tả hình ảnh ở đây

Chọn "Hiển thị cài đặt nâng cao" nhập mô tả hình ảnh ở đây

Kiểm tra "Bật đầu vào bàn phím" nhập mô tả hình ảnh ở đây

Nhấp vào Kết thúc và bắt đầu trình giả lập để tận hưởng đầu vào bàn phím.


Làm việc cho tôi sau khi cài đặt đầu vào bàn phím enablinh nhưng tự hỏi làm thế nào nó tự dừng hoạt động ở nơi đầu tiên.
Justcantly 20/07/2017

3
Thật là bực bội khi hộp kiểm này tự bỏ chọn sau mỗi lần cập nhật trình giả lập :(
Misha Akopov

2
Trong trường hợp của tôi, bàn phím đã được bật, nhưng không hoạt động trong trình giả lập. Cách khắc phục là tắt bàn phím, khởi động trình giả lập, chấm dứt trình giả lập, kích hoạt bàn phím.
beroal

15

Xem trong AVD Manager, chọn AVD và nhấp vào Chỉnh sửa. Trong phần Phần cứng: nhấp vào "Mới" và tìm kiếm "Hỗ trợ bàn phím" và thêm bằng nút OK và đặt giá trị thành "có" và lưu các thay đổi với "Chỉnh sửa AVD"


Điều kỳ lạ là, khi tôi đặt giá trị này thành có, nó buộc giá trị trở lại là không, dù sao cũng sẽ kiểm tra lại với Thiết bị mới
epsilonpsi

Tôi thích câu trả lời này. Sử dụng trình quản lý AVD là một giải pháp dễ nhớ hơn thay đổi tệp config.ini.
Seth

10

Google muốn gây thêm đau đầu cho các nhà phát triển.

Vì vậy, những gì bạn phải làm bây giờ là chỉnh sửa AVD của bạn và thêm "Hỗ trợ bàn phím" cho nó trong phần Phần cứng và thay đổi giá trị thành "Có"


1
Không làm việc cho tôi, giá trị hỗ trợ bàn phím avd của "có" không được lưu, nó tiếp tục trở lại thành "không".
Justin

Trên thực tế Google muốn cải thiện mọi thứ. Hầu hết các thiết bị hiện không có bàn phím phần cứng, do đó, mặc định sẽ không có / bị vô hiệu hóa. Vâng, làm việc với trình giả lập dễ dàng hơn với một, nhưng điều đó không phản ánh các điều kiện trong thế giới thực. Cách chính xác là làm cho các nhà phát triển đặc biệt kích hoạt nó.
Charlie Collins

4

Trong thư mục nhà của bạn /.android/avd//config.ini thêm dòng hw.keyboard = yes


2

Chỉ trong trường hợp ai đó tìm thấy nó hữu ích.

Tôi gặp sự cố với KEYCODE_DPAD_UP, nó thuộc về trackBall. để giải quyết thay đổi này, avdfolder / config.ini hw.trackBall = yes và nhấn DEL hoặc F6


2

Khởi động lại trình giả lập đôi khi giúp gõ khi không có sẵn - mặc dù đã bật tính năng nhập bàn phím cho Thiết bị ảo Android của bạn.


0

Tìm thư mục .android ẩn trong thư mục nhà người dùng của bạn. Bạn có thể đổi tên hoặc xóa thư mục này, tạo lại AVD của bạn và khởi động lại trình giả lập. Có thể có một tệp .ini trong thư mục đó có cài đặt đó.


vâng tôi cũng đã xóa các tập tin .android và avd .. không giúp được gì cả. cảm ơn về đầu vào
epsilonpsi

0

Tái tạo AVD bằng Bàn phím phần cứng + đặt boolean thành true là giải pháp duy nhất phù hợp với tôi; cả hai giải pháp chính khác (thiết bị đầu cuối hoặc chỉnh sửa AVD hiện có qua GUI) đều dẫn đến sự cố phần mềm / trình giả lập trên máy Mac của tôi. Làm cho một AVD mới dẫn đến bàn phím hoạt động tốt.


0

Đây là một cách giải quyết thực sự hiệu quả với tôi, đó là giải pháp tương tự như trong câu trả lời phổ biến nhất - chỉ cần thêm hw.keyboard = yes vào config.ini nhưng vì điều này không hiệu quả với tôi.

  1. đổi tên config.ini (bất kỳ tên nào cũng được) thành một cái gì đó như consssssfig.ini
  2. khởi động lại trình giả lập (rõ ràng là nó không bắt đầu)
  3. đổi tên lại config.ini
  4. (Tôi không chắc có liên quan hay không) Tôi đã thêm tham số mới này (hw.keyboard = yes) vào lúc xin tập tin config.ini
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.