एंड्रॉइड स्टूडियो में एमुलेटर नहीं चला सकता


96

मैंने अभी-अभी एंड्रॉइड स्टूडियो इंस्टॉल किया है और इसे टेस्ट रन के लिए लेने की कोशिश कर रहा हूं। जब मैं अपना ऐप चलाने की कोशिश करता हूं तो मुझे निम्न त्रुटि संदेश मिलता है

emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined

क्या कोई जनता है कि यह कैसे ठीक किया जाता है????


1
इस उत्तर की जाँच करें stackoverflow.com/questions/9712605/…
Psypher

@ टेड पोटल, क्या आपके सवालों के जवाब के नीचे कोई जवाब था? यदि ऐसा है, तो कृपया इसके आगे स्थित चेकमार्क पर क्लिक करें।
हैरिस

जवाबों:


27

यह संभव है कि आपके पास वास्तव में कोई सिस्टम चित्र नहीं है। डबल-चेक जो $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7aमौजूद है और खाली नहीं है। यदि वे वास्तव में गायब हैं - एसडीके प्रबंधक के साथ इंस्टॉल / पुनः इंस्टॉल करें।


2
मुझे दो समस्याएं हैं: 1: मुझे नहीं मिल रहा है $ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a, 2: एसडीके प्रबंधक का उपयोग करके वर्चुअल डिवाइस को कैसे पुनर्स्थापित करना है
मूसा हैदरी

हालांकि आपका जवाब पढ़कर, मैं एक वर्कअराउंड कर सकता था, और वह था एक नया वर्चुअल डिवाइस बनाना और समस्या नए के लिए नहीं थी
मूसा हैदरी

4
एसडीके प्रबंधक के भीतर, आप "शो पैकेज विवरण" की जांच सुनिश्चित करें ताकि आप देख सकें कि कौन सी सिस्टम छवियां स्थापित की गई हैं, और यदि नहीं, तो उन्हें स्थापित करें
मार्टिन डेविस

21

टूल्स पर जाएं | Android | एवीडी मैनेजर

दूर दाईं ओर स्थित क्रिया कॉलम के नीचे तीर पर क्लिक करें (जहां त्रुटि संदेश है)

संपादित करें चुनें

डिफ़ॉल्ट चयन को छोड़ दें (मेरे लिए, MNC x86 Android M)

अगला पर क्लिक करें

समाप्त पर क्लिक करें

यह आपके AVD को बचाता है और त्रुटि अब अंतिम कॉलम से चली गई है। और एमुलेटर अब ठीक काम करता है।


15

बस यही तय किया। आशा है कि यह दूसरों की मदद करता है। (एंड्रॉइड स्टूडियो वी 2 में जारी) यह मुद्दा आर्म इम्यूलेटर के लिए है। इस उदाहरण में मैं armeabi-v7a API 16 का उपयोग कर रहा हूं

फिक्स तीन चरण है:

चरण 1: sdk प्रबंधक खोलें और सुनिश्चित करें कि आपने ARM EABI v7a सिस्टम इमेज स्थापित किया है

चरण 2. यह sdk के सिस्टम चर में स्थान जोड़ने का स्पष्ट मामला है।

डेस्कटॉप पर "यह पीसी" आइकन पर राइट क्लिक करें

Properties -> Advanced system settings -> Environment Variables... तब चर नाम के उपयोग से सिस्टम चर खंड में sdk को नए रूप में जोड़ें ANDROID_SDK_ROOT

चरण 3. रजिस्टर करने के लिए परिवर्तनों के लिए एंड्रॉइड स्टूडियो को पुनरारंभ करें। ANDROID_SDK_ROOTअपरिभाषित समस्या को ठीक करने के बाद , एमुलेटर अभी भी कर्नेल फ़ाइलों को नहीं ढूंढ सकता है, भले ही यह देख सकता है कि एसडीके प्रबंधक ने इसे स्थापित किया है

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

कारण उस स्थान के बीच का मिश्रण है जो sdk प्रबंधक कर्नेल फ़ाइल को स्थापित करता है और एमुलेटर उस स्थान को ढूंढ रहा है।

यदि आप अपने एमुलेटर (एंड्रॉइड स्टूडियो -> एवीडी मैनेंजर -> "शो ऑन डिस्क") को खोलते हैं, तो अपने एमुलेटर के लिए आपको निम्न लाइन दिखाई देगी:

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

(यानी \ पथ-से-एसडीके \ _ ऐड-ऑन \ एडऑन-)

इसके बजाय मैंने config.ini फ़ाइल में इस मान को कॉपी किया है

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

(स्थापित फ़ोल्डर प्रबंधक से कर्नेल फ़ाइल)

सेवा

\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\

और वह गायब कर्नेल फ़ाइल थी। आप एमुलेटर चला सकते हैं। (आपको एंड्रॉइड स्टूडियो को बंद करने और फिर से खोलने की आवश्यकता होगी) एमुलेटर को कुछ समय दें क्योंकि यह x86 की तुलना में 10x गुना धीमा है। (खदान शुरू होने में लगभग 5 मिनट लगे)


उह, कहां है 'config.ini आपके एमुलेटर के लिए'?
Jay

Android Studio -> AVD Mananger -> "डिस्क पर दिखाएँ"। उत्तर का संपादन।
एएसआई मुगराबादी

यह जवाब है कि वास्तव में मेरे लिए चाल है, मेरे मामले में, यह मेरी संपादित पंक्ति थी:image.sysdir.1=system-images\android-16\default\armeabi-v7a
yvesmancera

यह नेक्सस 4 एमुलेटर के लिए मेरे लिए चाल चली। image.sysdir.1@ सिस्टम-इमेज \ android-15 \ google_apis \ armeabi-v7a` को अपडेट करना था
टहनी

10

मैंने इसे "C: \ Program Files \ Android \ android-sdk \ AVD Manager.exe" चलाकर और अपने टूटे हुए उपकरण को ठीक करके ठीक किया।


5

संक्षिप्त उत्तर : पुराने विद्यालय का उपयोग करके समान छवि बनाने का प्रयास करें <AndroidSDK>\AVD Manager.exe

एंड्रॉइड स्टूडियो में काम करना, सभी एकीकृत उपकरण चलाना, पुराने प्रबंधकों (AVD / SDK) का उपयोग न करना मेरे लिए स्वाभाविक हो गया।

मेरे मामले में, मुझे यह समस्या थी जब मैंने पुराने सिस्टम की छवियों (एपीआई 11 और नीचे, जैसा मैंने परीक्षण किया है) के साथ डिवाइस बनाने के लिए नए (एकीकृत) एवीडी प्रबंधक का उपयोग किया था।

जब मैंने <AndroidSDK>\AVD Manager.exeइन पुराने डिवाइस चित्रों को बनाने के लिए पुराने स्कूल AVD प्रबंधक टूल (स्थित ) का उपयोग करने की कोशिश की , तो मुझे सफलता मिली।


2
सुझाव के लिए धन्यवाद - लगता है जैसे स्टैंडअलोन टूल जानता है कि पुराने प्लेटफार्मों के लिए चीजों को कैसे सेट किया जाए। OS X / macOS पर ~/Library/Android/sdk/tools/android avd:।
न्यूरल

4

अरे वहाँ बस उसी मुद्दे पर भाग गया था जो आपने किया था, Google में नीचे 3 लिंक ने मुझे इस कोड में लाया जो त्रुटि को फेंकता है,

if (kernelFile == NULL) {
        kernelFile = avdInfo_getKernelPath(avd);
        if (kernelFile == NULL) {
            derror( "This AVD's configuration is missing a kernel file!!" );
            const char* sdkRootDir = getenv("ANDROID_SDK_ROOT");
            if (sdkRootDir) {
                derror( "ANDROID_SDK_ROOT is defined (%s) but cannot find kernel file in "
                        "%s" PATH_SEP "system-images" PATH_SEP
                        " sub directories", sdkRootDir, sdkRootDir);
            } else {
                derror( "ANDROID_SDK_ROOT is undefined");
            }
            exit(2);

जिस व्यक्ति ने लिखा है:

"/ * यदि कर्नेल छवि का नाम" -armv7 "में समाप्त होता है, तो सीपीयू बदलें * स्वचालित रूप से। यह कॉन्फ़िगरेशन * प्रबंधन के लिए एक गरीब आदमी का दृष्टिकोण है, लेकिन हमें पिछले निर्माण ARMv7 प्राप्त करने की अनुमति देनी चाहिए * dex hopt पास के साथ सिस्टम छवियों। "

इसलिए मैंने अपने वांछित एपीआई स्तर के लिए x86 इंटेल एटम संस्करण डाउनलोड किया और त्रुटि के बिना एमुलेटर को प्राप्त करने में सक्षम था। आशा है कि यह भी आपकी मदद करता है .....


2

आम तौर पर, आपके द्वारा विकसित किए जा रहे ऐप के प्रकार के लिए अनुपयुक्त AVD एमुलेटर के कारण त्रुटि होगी। उदाहरण के लिए यदि आप एक पहनने योग्य के लिए एक ऐप विकसित कर रहे हैं, लेकिन आप इसे चलाने के लिए फोन एमुलेटर का उपयोग करने की कोशिश कर रहे हैं।


2

मेरी भी यही त्रुटि थी। मेरे लिए समाधान ANDROID_HOME पथ बदल गया था । सबसे पहले मैंने Android Studio से टूल्स-> android-> sdk मैनेजर पर एक नज़र डाली । उस विंडो में, हम वह पथ देख सकते हैं जहाँ Android Studio SDK: छवि के लिए दिखता है

फिर मैंने एक विंडोज सीएमडी खोल दिया, जिसे निष्पादित किया गया:

echo %ANDROID_HOME%

लेकिन पहले चरण के ANDROID STUDIO CONFIGURATION में रास्ता अलग था।

समाधान को पहले चरण: छवि में से एक में, उपयोगकर्ता पर्यावरण, ANDROID_HOME में बदलना था

मैंने आखिरकार cmd शेल को बंद कर दिया, और निष्पादित करने के लिए एक और cmd खोल खोला:

echo %ANDROID_HOME%

पथ को अद्यतन किया गया था, और मैं अपने एमुलेटर को पूरी तरह से चला सकता था।


1

मेरे मामले में (विंडोज 10) कारण यह था कि मैंने एंड्रॉइड एसडीके को गैर डिफ़ॉल्ट फ़ोल्डर में अनज़िप करने की हिम्मत की। जब मैंने इसे डिफॉल्ट वन c: / Users / [username] / AppData / लोकल / एंड्रॉइड / Sdk में स्थानांतरित किया और एंड्रॉइड स्टूडियो और सिस्टम वेरिएबल्स में पथ बदल दिए, तो यह काम करना शुरू कर दिया।


1
  • Android स्टूडियो खोलें।
  • सेटिंग> सिस्टम सेटिंग> एंड्रॉइड एसडीके पर जाएं
  • "एंड्रॉइड एसडीके स्थान" प्राप्त करें।
  • इस मान के लिए पर्यावरण चर ANDROID_SDK_ROOT सेट करें।

यह मेरे लिए काम करता है और मैं विंडोज 10 और एंड्रॉइड स्टूडियो 2.3.3 पर हूं


1
  1. "सिस्टम पर्यावरण चर को संपादित करें" पर जाएं।
  2. न्यू बटन पर क्लिक करें और चर नाम में "ANDROID_SDK_ROOT" दर्ज करें और चर मान में Android sdk पूर्ण पथ दर्ज करें। ठीक पर क्लिक करें और बंद करें।
  3. एवीडी को ताज़ा करें।
  4. यह त्रुटि को हल करेगा।

-1

इस समस्या को हल करने के लिए एक सामान्य दृष्टिकोण।

1. अपने एसडीके प्रबंधक को अपने एंड्रॉइड स्टूडियो से चलाकर और एलोन एसडीके फ़ोल्डर को चलाकर निष्पादित करें जो ./android.shआपको टूटे हुए पैकेजों को खोजने में मदद करता है।

  1. Intel की तुलना में Google API समर्थन के साथ सिस्टम एमुलेटर चित्र स्थापित करने का प्रयास करें। जैसे, मैंने एक और सिस्टम इमेज में चलाकर अपनी समस्या को हल किया।

  2. लिनक्स के लिए Google द्वारा सुझाए गए KVM आधारित वर्चुअलाइजेशन पर प्रयोग

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.