जब आप अपने AVD या SDK को किसी अन्य निर्देशिका में ले जाते हैं, या एक पुराने SDK को किसी नए से बदल देते हैं, या किसी तरह SDK को दूषित कर देते हैं, तो कई अलग-अलग समस्याएं हो सकती हैं।
नीचे मैं उन सभी संभावित समस्याओं का वर्णन करता हूँ जो मैं जानता हूँ, और आपको उन्हें हल करने के कई तरीके देगा।
बेशक, मैं मानता हूं कि आपके पास कोई भी एवीडी है, और यह C:\Users\<user_name>\.android\avd
(विंडोज) या ~/.android/avd
(लिनक्स / मैकओएस) में स्थित है।
यदि आप .android
किसी अन्य स्थान पर चले गए हैं, तो ANDROID_SDK_HOME
पर्यावरण चर को अपने मूल माता-पिता के मार्ग पर सेट करें .android
और सुनिश्चित करें कि AVD प्रबंधक को सफलतापूर्वक आपका वर्चुअल डिवाइस मिल गया है।
में रास्तों की भी जाँच करें <user_home>/.android/avd/<avd_name>.ini
अपूर्ण / दूषित एसडीके स्टेकचर
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value
यदि एमुलेटर एसडीके को नहीं ढूंढ पाता है, या एसडीके टूट जाता है, तो ये 2 त्रुटियां होती हैं।
इसलिए, सबसे पहले मैं ANDROID_SDK_ROOT
चर को हटाने की सलाह देता हूं । यह केवल तभी आवश्यक है जब एमुलेटर एसडीके निर्देशिका के बाहर स्थित हो। लेकिन सामान्य तौर पर, आपका एमुलेटर एसडीके डायर के अंदर रहता है। और इस मामले में इसे अपने आप एसडीके स्थान का पता लगाना चाहिए । यदि ऐसा नहीं होता है, तो आपके एसडीके में संभवतः गलत फाइल्री है। कृपया निम्नलिखित करें:
जाँच करें कि एसडीके निर्देशिका में कम से कम इन 4 निर्देशिका है: emulator
, platforms
, platform-tools
, system-images
। यह बहुत महत्वपूर्ण है! ये निर्देशिका मौजूद होनी चाहिए। यदि उनमें से कुछ मौजूद नहीं हैं, तो बस खाली डायर बनाएं।
जाकर <user_home>/.android/avd/<avd_name>
खोलो config.ini
। image.sysdir.1
संपत्ति का पता लगाएं । यह एसडीके निर्देशिका के अंदर निर्देशिका पर इंगित करता है, जिसमें वास्तविक सिस्टम छवि शामिल है। सुनिश्चित करें कि यह निर्देशिका मौजूद है और आदि जैसी फ़ाइलें हैं build.prop
, system.img
आदि। यदि यह नहीं है, तो आपको एसडीके प्रबंधक को खोलना होगा और सिस्टम छवियों को डाउनलोड करना होगा जो आपके AVD की आवश्यकता है (नीचे देखें)।
यदि सब कुछ ठीक से सेट है, जब इन त्रुटियों के बारे में ANDROID_SDK_ROOT
जाना चाहिए। यदि वे नहीं हैं, तो अब आप ANDROID_SDK_ROOT
चर स्थापित करने का प्रयास कर सकते हैं ।
आवश्यक पैकेज और HAXM स्थापित नहीं हैं
अगली समस्या जो आपको हो सकती है वह यह है कि एमुलेटर लॉन्च करना शुरू कर देता है, लेकिन तुरंत लटक जाता है या तुरंत बाहर निकल जाता है। शायद इसका मतलब है कि आपके पास सभी आवश्यक पैकेज स्थापित नहीं हैं।
एक और संभावित त्रुटि है:
स्वचालित रूप से एक एडीबी बाइनरी का पता नहीं लगा सका। विस्तारित सेटिंग पृष्ठ में ADB के लिए एक कस्टम पथ जोड़े जाने तक कुछ एमुलेटर कार्यक्षमता काम नहीं करेगी।
इसलिए, किसी भी AVD को सफलतापूर्वक लॉन्च करने के लिए आपको यह सुनिश्चित करना चाहिए कि कम से कम ये पैकेज स्थापित हैं:
emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)
और जैसा कि मैंने पहले उल्लेख किया है कि आपको सिस्टम छवियों को स्थापित करना होगा जो आपके AVD उपयोग कर रहे हैं, उदाहरण के लिए system-images;android-25;google_apis;x86
ध्यान दें कि एसडीके पर सबसे हाल के संस्करणों में एक स्टैंडअलोन नहीं है SDK Manager.exe
। इसके बजाय आपको या तो एंड्रॉइड स्टूडियो का उपयोग करना है, या tools\bin\sdkmanager.bat
(लिनक्स / मैकओएस में शायद sh
फाइलें हैं)।
सभी उपलब्ध पैकेजों को सूचीबद्ध करने के लिए उपयोग करें sdkmanager --list
याsdkmanager --list --verbose
संकुल उपयोग को स्थापित करने के लिए sdkmanager <package1> <package2> ...
इसके अलावा, मैं आपके सिस्टम पर मैन्युअल रूप से HAXM स्थापित करने की सलाह देता हूं ।
Qcow2-फाइलें गलत / nonexistent आधार-छवियों को संदर्भित करती हैं
आखिरी समस्या जिसका मैं उल्लेख करता हूँ जब आप एक कंप्यूटर या निर्देशिका से AVD या SDK को स्थानांतरित करने का प्रयास कर रहे होते हैं। इस मामले में आपको ऐसी त्रुटि मिल सकती है:
qemu-system-i386.exe: -Drive अगर = कोई नहीं, ओवरलैप-चेक = कोई नहीं, कैश = असुरक्षित, इंडेक्स = 0, आईडी = सिस्टम, फ़ाइल = C:\Users\<old_user_name>\.android\avd\<avd_name>
।
avd \ system.img.qcow2, केवल पढ़ने के लिए: बैकिंग फ़ाइल नहीं खोल सका: ' <old_sdk_dir>\system-images\android-22\google_apis\x86\system.img
' नहीं खोल सका : अमान्य तर्क
इसे ठीक करने के 2 तरीके हैं:
अगर आपको AVD में मौजूद डेटा की परवाह नहीं है, तो बस qcow2
AVD डायरेक्टरी (उदाहरण के लिए <user_home>/.android/avd/<avd_name>
) से सभी फाइलों को हटा दें । इस मामले में आपको एंड्रॉइड का एक साफ संस्करण मिलेगा, जैसे कि हार्ड रीसेट के बाद।
यदि एमुलेटर पर डेटा आपके लिए महत्वपूर्ण है, तो qcow2
किसी भी हेक्स संपादक (मैं एचएक्सडी को पसंद करता हूं ) का उपयोग करके एक-एक करके सभी फाइलें खोलें , एक बेस img
फाइल का रास्ता ढूंढें , और इसे Overwrite
मोड में सही एक में बदलें (संरक्षित करने के लिए) फाइल का आकार)। फिर पथ का चयन करें और अपनी लंबाई को हेक्स (जैसे 2F
) में प्राप्त करें। 2F
ASCII स्लैश का प्रतिनिधित्व करता है /
। इसे स्थिति में रखें 13
:
पुनश्च: निश्चित नहीं है, लेकिन शायद कुछ आधार हैं जैसे कि कीमू-आईएमजी विभिन्न आधार छवि सेट करने की अनुमति देते हैं। खैर, मेरे लिए बाइनरी को मैन्युअल रूप से संपादित करना आसान है।
अब आप शायद अपने Android वर्चुअल डिवाइस को सफलतापूर्वक लॉन्च कर पाएंगे। मुझे आशा है :)