Lỗi trình giả lập: Cấu hình của AVD này thiếu tệp kernel


183

Vấn đề này được phát hiện khi tôi cố chạy trình giả lập Android trong Eclipse. Không thể hiểu chuyện gì đã xảy ra. Tôi đã tìm kiếm giải pháp trực tuyến, nhưng nó có vẻ mơ hồ và tôi không hiểu rõ. Tôi đã làm theo các bước để cài đặt AVD theo các trang web và tôi không thể tìm ra những gì tôi đã bỏ lỡ. Hãy giải thích cho tôi trong các bước để làm theo.


cùng một vấn đề: stackoverflow.com/questions/8190820/scala-android-newbie - tạo AVD mới
zapl

1
Trên mac vẫn không thể khởi động nó; sử dụng sửa chữa trên AVD đã làm việc cho tôi stackoverflow.com/a/15971119/664220
Ronnie

khởi động lại Eclipse sau khi cài đặt hình ảnh ARM và sau đó tạo AVD mới hoạt động với tôi.
Simon

Có thể liên kết này có thể giúp: developer.android.com/tools/help/avd-manager.html
Abhijeet

Câu trả lời:


254

"Hình ảnh hệ thống ARM EABI v7a" phải có sẵn. Cài đặt nó thông qua trình quản lý SDK Android: Trình quản lý SDK Android

Một gợi ý khác (xem tại đây ) - với

  • Công cụ SDK Android rev 17 trở lên
  • Android 4.0.3 (API cấp 15)
  • sử dụng SDK rev 3 và System Image rev 2 (hoặc cao hơn)

bạn có thể bật mô phỏng GPU để có trình giả lập nhanh hơn: nhập mô tả hình ảnh ở đây

Lưu ý: Theo nhận xét của you786 nếu bạn đã tạo trình giả lập trước đó thì bạn cần tạo lại nó, nếu không điều này sẽ không hoạt động.

Giải pháp thay thế 1
Intel cung cấp "Trình quản lý thực thi tăng tốc phần cứng Intel ", đây là trình giả lập dựa trên VM để thực hiện các hình ảnh X86 và cũng được Trình quản lý SDK Android phục vụ. Xem hướng dẫn cho trình giả lập Intel tại đây: HAXM tăng tốc trình giả lập Android . Bài viết Nurik La Mã ở đây rằng trình giả lập Intel với Android 4.3 "nhanh như chớp".

Giải pháp thay thế 2
Trong các bình luận của bài viết trên, bạn có thể tìm thấy một tài liệu tham khảo về Genymotion , người tự nhận là "trình giả lập Android nhanh nhất để thử nghiệm và trình bày ứng dụng". Genymotion chạy trên VirtualBox. Xem thêm trang web của họ trên Google+ , bài đăng này từ Cyril Mottier và hướng dẫn này trên reddit .

Giải pháp thay thế 3
Trong các diễn đàn XDA tôi đọc về MEmu - Trình giả lập Android mạnh nhất cho PC, tốt hơn Bluestacks . Bạn có thể tìm thấy trình giả lập ở đây . Điều này đưa tôi đến ...

Thay thế 4
... mục XDA-Forum này: Cách sử dụng NHANH CHÓNG! BlueStack là trình giả lập phát triển Android thay thế của bạn . Bạn có thể tìm thấy trình giả lập ở đây .


1
Không may gặp sự cố trên một số thẻ ATI nhất định khi mô phỏng GPU được bật - mong muốn trình giả lập được cập nhật.
ChrLipp

23
Tôi thấy rằng tôi phải xóa trình giả lập và tạo lại nó sau khi cài đặt để giải quyết vấn đề này.
you786

3
@ you786 có, điều quan trọng là phải tạo lại nó
Bobs

1
Tôi đã làm tất cả các cách có thể nhưng nó vẫn ở đó trong khi khởi chạy trình giả lập
VISHNU GARG

Xem câu trả lời của tôi dưới đây.
Marc Rochkind

22

Một lý do khác mà bạn có thể gặp phải lỗi này là Eclipse không thể tìm đúng tệp.

Hãy xem nơi Eclipse đang tìm kiếm các tệp SDK của bạn. Bạn có thể làm điều này trên dòng lệnh. Dưới đây là một ví dụ cho lời nhắc lệnh windows cho một avd tôi đã tạo và được đặt tên là 'SonyTabletS':

c:\Program Files (x86)\Android\android-sdk\tools> emulator @SonyTabletS -verbose

Dòng đầu tiên được trả về cho thấy nơi nhật thực đang tìm kiếm các tệp SDK và sẽ trông giống như:

emulator: found ANDROID_SDK_ROOT: C:\Program Files (x86)\Android\android-sdk

Hãy chắc chắn rằng vị trí là chính xác.

Trong trường hợp của tôi, ANDROID_SDK_ROOTban đầu được đặt không chính xác vào thư mục nhà của tôi. Điều này là do tôi đã thiết lập theo cách đó bằng cách làm theo một cách mù quáng các hướng dẫn cài đặt SDK của Sony Tablet S và thêm một ANDROID_SDK_ROOTbiến môi trường với đường dẫn không chính xác.


Trong trường hợp của tôi, Android \ android-studio \ sdk đã bị chiếm vị trí ANDROID_SDK_ROOT trong khi tôi đang chạy trình giả lập từ thư mục Android \ android-sdk. Khi nó trỏ chính xác vào Android \ android-sdk, nó sẽ hoạt động.
noel aye

Đây là nó cho tôi. Môi trường xây dựng của tôi sử dụng một ANDROID_SDK_ROOT mà tôi không thể dễ dàng cập nhật. Cách khắc phục là khởi chạy một dấu nhắc lệnh sạch và đặt ANDROID_SDK_ROOT sang bên phải và khởi chạy trình quản lý sdk từ đó.
Doug Coburn

Kiểm tra kỹ xem bạn có vô tình cài đặt hai bản SDK không. Nếu bạn giống tôi, bạn đã cài đặt "Ảnh hệ thống ARM EABI v7a" trong một bản sao nhưng AVD đã cố gắng tìm nó trong bản sao khác. Tôi đã xóa một trong các bản sao SDK của mình và sau đó trình giả lập của tôi bắt đầu ngay.
sffc

Trong trường hợp của tôi, tôi có thư mục SDK của tôi trỏ đến thư mục chính xác.
Chiến tranh neon

16

Câu chuyện của tôi, Eclipse muốn có một tệp có tên " kernel-ranchu" trong thư mục ảnh hệ thống ( /path/to/android-sdk-macosx/system-images/android-25/google_apis/arm64-v8a).

trình giả lập: LRI: Cấu hình của AVD này thiếu tệp kernel! Vui lòng đảm bảo tệp "kernel-ranchu" ở cùng vị trí với ảnh hệ thống của bạn.

trình giả lập: ERROR: ANDROID_SDK_ROOT không xác định

Trong thư mục ảnh hệ thống đó có một tệp gọi là " kernel-qemu". Tôi chỉ đổi tên nó thành " kernel-ranchu" và nó hoạt động ...


4
Trong trường hợp của tôi, đó là cách khác
urnenfeld 28/12/18

15

Tôi đã từng gặp vấn đề tương tự. Trong trường hợp của tôi, hóa ra tôi đã cài đặt một phiên bản sdk khác cùng với phiên bản do Android Studio cung cấp. Thay đổi biến môi trường ANDROID_SDK_ROOT của tôi thành giá trị ban đầu đã sửa nó cho tôi.


1
Điều quan trọng cần lưu ý đây là một câu trả lời hợp lệ không kém là câu trả lời hàng đầu trong trường hợp SDK đã được cài đặt trước đó trước Android Studio. Lỗi là Android Studio sẽ nhận thấy rằng ANDROID_SDK_ROOT đã được đặt ở một vị trí thay thế và cảnh báo người dùng trong khi cài đặt.
Lõi

Cốt lõi là chính xác. Tôi đã chuyển từ Eclipse sang Android Studio ngày hôm nay và đây là điều đã khắc phục vấn đề cho tôi.
Pikamander2

11

Đây là câu chuyện của tôi. Trong phần 'Hành động' trên trình quản lý AVD, tôi đã xem chi tiết về AVD không hoạt động. Cuộn xuống, tôi tìm thấy dòng:

image.sysdir.1: add-ons\addon-google_apis-google-16\images\armeabi-v7a\

Sau đó tôi đã điều hướng đến tập tin này tại:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

Tôi tìm thấy không có tập tin kernel. Tuy nhiên, tôi đã tìm thấy một tập tin kernel tại:

C:\Users\XXXX\AppData\Local\Android\sdk\system-images\android-16\default\armeabi-v7a

Vì vậy, tôi đã sao chép nó và dán lại vào:

C:\Users\XXXX\AppData\Local\Android\sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a

AVD sau đó đã làm việc.


Cảm ơn, điều này đã giải quyết nó! Tôi nghĩ rằng đây phải là một lỗi hoặc sth vì đó là một hành vi rất kỳ lạ
Hugo

7

Mở Trình quản lý AVD trong chế độ Quản trị viên Chọn VM và nhấp vào chỉnh sửa, nhấp OK Bắt đầu VM.

Lưu ý của biên tập viên : Theo chế độ quản trị viên, anh ta có nghĩa là Nhấp chuột phải> Chạy với tư cách quản trị viên trên nền tảng windows.


'Chế độ quản trị viên' ở đâu / ở đâu?
ericpeter0n

Không thể tìm thấy VM, cho Mac OS
Frank Fang

4

Nếu bạn biết tệp kernel được cài đặt trên máy của mình, thì vấn đề là lấy emulator.exe để tìm nó.

Sửa lỗi của tôi được dựa trên bài viết của người dùng2789389. Tôi có thể khởi chạy AVD từ Trình quản lý AVD, nhưng không phải từ dòng lệnh. Vì vậy, bằng cách sử dụng Trình quản lý AVD, tôi đã chọn avd tôi muốn chạy và nhấp vào "Chi tiết". Điều đó cho tôi thấy đường dẫn đến tệp định nghĩa avd. Trong một thư mục cùng tên, bên cạnh tệp .avd này, tôi tìm thấy một tệp config.ini. Trong ini, tôi tìm thấy dòng sau:

image.sysdir.1=system-images\android-19\default\armeabi-v7a\

Tôi đã xem trong thư mục C: \ Users \ XXXX \ android-sdks \ system-hình ảnh \ android-19 và thấy rằng đường dẫn image.sysdir.1 không hợp lệ. Tôi đã phải xóa thư mục con "mặc định", do đó thay đổi nó thành như sau:

image.sysdir.1=system-images\android-19\armeabi-v7a\

Tôi đã lưu ini và thử lại để khởi chạy AVD. Điều đó đã khắc phục vấn đề!


Điều này đã không sửa chữa nó. Trong trường hợp của tôi, tôi có hình ảnh sytem trong thư mục con mặc định.
Chiến tranh neon

Bạn không cần phải bỏ phiếu cho tôi vì bạn có một vấn đề khác! Điều đó không làm cho câu trả lời của tôi sai.
BuvinJ

Bạn đã bỏ phiếu cho tất cả các bài đăng khác ở đây vì họ không giải quyết vấn đề của bạn?
BuvinJ

Điều này đã khắc phục sự cố cho tôi, tôi đang chạy trên Mac và đường dẫn đã trỏ đến image.sysdir.1 = add-ons / addon-google_apis-google-16 / hình ảnh / armeabi-v7a, thay đổi thành system-hình ảnh / android -16 / default / armeabi-v7a đã giải quyết vấn đề
Felipe Jun Jun

3

Đảm bảo rằng bạn cũng đã cấu hình đúng một thiết bị mô phỏng. Android Studio có thể đi kèm với một thiết bị hiển thị trong danh sách các thiết bị được mô phỏng nhưng không được thiết lập để hoạt động với phiên bản SDK bạn đang sử dụng.

Hãy thử tạo một thiết bị mô phỏng mới trong Trình quản lý AVD (Công cụ-> Android> Trình quản lý AVD) và chọn thiết bị đó làm mục tiêu.


Cố gắng đi xuống con đường này cho tôi biết rằng HAXM chưa thực sự được cài đặt, mặc dù nó cho thấy nó đã được. Tôi đã được nhắc cài đặt Intel HAXM.
Lodlaiden

2

Tôi đã cài đặt trình quản lý SDK Android và Android SDK vào cuối năm và tôi cũng gặp lỗi này khi thử chạy trình giả lập Android ngay lập tức. Nhưng, ngay bây giờ lỗi này biến mất, tôi nghĩ khởi động lại hệ thống của bạn khi SDK đã cài đặt có thể giải quyết vấn đề này.


2

Một ý nghĩ thông minh duy nhất đã xảy ra với tôi sau một ngày dài sửa chữa / xây dựng lại / nâng cấp SDK / NDK & JDK. Các vars môi trường cần được kiểm tra, vì cách khắc phục cho tập tin kernel bị thiếu AVD 'GalaxyS3 của tôi là mở rộng tham chiếu hình ảnh hệ thống đến tuyệt đối.

image.sysdir.1 = C: \ Android \ sdk \ system-hình ảnh \ android-19 \ armeabi-v7a \

Việc thêm "C: .... sdk \" vào mục 'image.sysdir.1 =' trong tệp 'workspace'.android \ avd \ GalaxyS3.avd \ config.ini đã giải quyết vấn đề (hiện tại).


2

Tôi đã cập nhật SDK Android của mình lên phiên bản mới nhất (API 19). Khi tôi cố chạy trình giả lập với phonegap 3, quá trình xây dựng đã thành công nhưng nó cũng gặp vấn đề tương tự.

Trong trình quản lý AVD có một thiết bị tồn tại, tuy nhiên, các tham số của nó đều không xác định. Chắc chắn điều này xảy ra vì tôi đã gỡ cài đặt phiên bản sdk cũ (API 17) trả về lỗi thứ hai trong khi cố gắng xóa thiết bị. Với thông báo: "thiết bị đã chạy"

Để giải quyết vấn đề, tôi đã đi đến vị trí của AVD trong ~ / .android / avd / và xóa thủ công tệp thư mục thiết bị.avd và device.ini. Cuối cùng, trong trình quản lý thiết bị, tôi đã tạo AVD mới được cung cấp bởi API mới nhất.

Điều này cho phép phonegap xây dựng và chạy trình giả lập thành công

Tôi hi vọng cái này giúp được

ngày tốt


2

Theo câu trả lời được chấp nhận bởi ChrLipp bằng Android Studio 1.2.2 trong Ubuntu 14.04:

  • Cài đặt gói "ARM EABI v7a System Image" từ trình quản lý SDK Android.
  • Xóa thiết bị ảo không chức năng.
  • Thêm một thiết bị mới với Giao diện nhị phân ứng dụng (ABI) là armeabi-v7a.
  • Khởi động vào thiết bị mới.

Điều này làm việc cho tôi. Hãy thử khởi động lại hệ thống của bạn nếu nó không hoạt động cho bạn.


2

Xem câu trả lời của tôi cho môi trường Android Studio , Mac và PAN PANIC: Thiếu chương trình công cụ giả lập cho CPU 'arm'. .

Để giải quyết vấn đề này, bạn cần chỉ định -kernelđường dẫn thủ công. I E

$ ~/Library/Android/sdk/emulator/emulator  @Galaxy_Nexus_Jelly_Bean_API_16 -kernel ~/Library/Android/sdk/system-images/android-16/default/armeabi-v7a/kernel-qemu

Hãy nhớ thay đổi tên trình giả lập thành tên giả lập Galaxy_Nexus_Jelly_Bean_API_16của riêng bạn.

Dưới đây lệnh là để kiểm tra các trình giả lập có sẵn cho dòng lệnh.

$ ~/Library/Android/sdk/emulator/emulator -list-avds

Và cũng, đảm bảo rằng đường dẫn giả lập của bạn là chính xác, tức là đường dẫn nằm ở ~/Library/Android/sdk/emulator/.


1

Tôi đã thử những gì ChrLipp đề xuất, nhưng đó không phải là vấn đề, vì hình ảnh đã được cài đặt. Những gì tôi đã làm là chạy:

android avd

để khởi động trình giả lập bằng tay. Sau đó, tôi dừng trình giả lập và hình thành điểm đó trên

cca emulate android

ứng dụng bắt đầu hoạt động mà không gặp lỗi "thiếu tập tin kernel".


1

Tôi đã khắc phục sự cố này chỉ bằng cách thêm biến môi trường ANDROID_SDK_ROOT, trong trường hợp của tôi, nó được đặt tại C: \ Users \ fera \ AppData \ Local \ Android \ sdk


1

Trong trường hợp của riêng tôi, tôi đã có nhiều lỗi hầu hết là về ANDROID_SDK_ROOT được cấu hình sai , vào cuối ngày, có một điều dường như đã khắc phục toàn bộ.

Thực hiện theo quy trình sau:

Sau khi tạo Thiết bị mô phỏng mới trên AVD, hãy chuyển đến menu Hành động và nhấp vào mũi tên chỉ xuống dưới như hình bên dưới.

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

Nhấp vào Hiển thị trên đĩa

Chỉnh sửa Config.ini

Hãy tìm image.sysdir.1

cần có một giá trị như thế này: ** image.sysdir.1 = system-hình ảnh \ android-28 \ google_apis_playstore \ x86 **

Giá trị của riêng bạn có thể khác

Bây giờ, hãy sửa trong đường dẫn của Android Sdk để tạo một đường dẫn hoàn chỉnh.

image.sysdir.1 = ** C: \ androidsdk ** system-hình ảnh \ android-28 \ google_apis_playstore \ x86 \

Nếu bạn nhận thấy, đường dẫn sdk android hiển thị ở trên khác với sdk mặc định thông thường của Android, tôi đã phải chuyển nó sang C: / androidsdk để tránh các vấn đề về NDK vì USER HOME chính trên PC của tôi có các khoảng trắng mà NDK có thể không hỗ trợ.

LƯU Ý: Di chuyển thư mục SDK ra khỏi thư mục mặc định của nó thường là nguyên nhân gây ra các lỗi này mà trình giả lập AVD đưa ra, đặc biệt là liên quan đến đường dẫn bị hỏng và bị định cấu hình sai. Cách khắc phục tôi cung cấp ở trên là cách khắc phục nhanh, bạn có thể phải thực hiện điều đó mỗi khi bạn tạo một thiết bị mới trên Trình giả lập AVD.

Khắc phục sự cố này cũng sẽ hoạt động khi làm việc trên CMD với cordova.


0

Chỉ muốn chia sẻ kinh nghiệm của tôi về vấn đề này. Tư vấn từng câu trả lời ở đây, nó không phù hợp với hoàn cảnh của tôi. Có một hình ảnh hệ thống cho API Android 22 gây ra lỗi này và điều kỳ lạ là tất cả các biến môi trường đều trỏ đến các thư mục chính xác. Nó không có ý nghĩa.

Câu trả lời @BuvinJ đã làm sáng tỏ vấn đề. Tôi đã kiểm tra đường dẫn mô tả về câu trả lời của anh ấy và vâng, bản sao hình ảnh hệ thống của tôi nằm trong mặc định của thư mục con khi tôi nhìn vào thư mục người dùng (trên Windows).

Điều kỳ lạ là, cũng có một thư mục android-sdk trong ANDROID_SDK_ROOT nên tôi nghĩ có lẽ Eclipse đang tìm kiếm ở đó. Đi sâu vào các thư mục con tôi nhận ra rằng thư mục trông như thế này:

android-sdk-windows\system-images\android-22\google_apis\armeabi-v7a

Thư mục này nằm trên ANDROID_SDK_ROOT. Ngoài ra còn có một cái khác nằm trong thư mục người dùng user / XXXX / android-sdk /.

Eclipse đang mong đợi nó ở đây:

android-sdk-windows\system-images\android-22\default\armeabi-v7a

Chỉ cần thay đổi thư mục như vậy và nó hoạt động ngay bây giờ.


0

Cập nhật các lệnh sau trong dấu nhắc lệnh trong windows:

i) sdk cập nhật android --no-ui --all // Nó cập nhật các gói SDK của bạn và mất 3 phút. ii) sdk --no-ui --filter nền tảng công cụ, công cụ // Nó cập nhật các công cụ nền tảng và các gói của nó. Iii

1) Trong dấu nhắc lệnh, nó yêu cầu bạn nhập Y / N. Bấm vào Y sau đó tiến hành cài đặt. 2) Nó cập nhật tất cả các tệp Kernel-qemu và các lệnh qt5.dll. để Trình giả lập hoạt động tốt mà không có vấn đề gì.



-1

Tôi đã giải quyết vấn đề này bằng cách cập nhật Công cụ SDK và Công cụ nền tảng trong Trình quản lý SDK Android lên phiên bản mới nhất.

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.