Linux पर एमुलेटर लॉन्च नहीं कर सकता (Ubuntu 15.10)


103

मैं एमुलेटर लॉन्च करने की कोशिश करता हूं लेकिन यह लॉग में आउटपुट करता है:

libGL error: unable to load driver: r600_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: r600 
libGL error: unable to load driver: swrast_dri.so 
libGL error: failed to load driver: swrast 
X Error of failed request:  GLXBadContext   
Major opcode of failed request:  155 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request:  47
Current serial number in output stream:  46 
libGL error: unable to load driver: r600_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: r600 
libGL error: unable to load driver: swrast_dri.so 
libGL error: failed to load driver: swrast 
X Error of failed request:  GLXBadContext
Major opcode of failed request:  155 (GLX)
Minor opcode of failed request:  6 (X_GLXIsDirect)   
Serial number of failed request:  47   
Current serial number in output stream:  46 
libGL error: unable to load driver: r600_dri.so 
libGL error: driver pointer missing 
libGL error: failed to load driver: r600
libGL error: unable to load driver: swrast_dri.so 
libGL error: failed to load driver: swrast 
X Error of failed request:  BadValue (integer parameter out of range for operation)   
Major opcode of failed request:  155 (GLX)   
Minor opcode of failed request:  24 (X_GLXCreateNewContext)   
Value in failed request:  0x0   
Serial number of failed request:  33   
Current serial number in output stream:  34 
QObject::~QObject: Timers cannot be stopped from another thread emulator: WARNING: Increasing RAM size to 1GB

इसे कैसे जोड़ेंगे? मैं इसी तरह की त्रुटियों के साथ विषय पढ़ता हूं लेकिन यह मेरी मदद नहीं करता है।


यहाँ इस जवाब में दी गई extralines बिना एक सुविधाजनक समाधान खोजने [ github.com/rimian/cordova-ember-android]
refle

जवाबों:


79

पर एक नज़र डालें

https://code.google.com/p/android/issues/detail?id=197254

विशेष आइटम # 3 और # 19 में। यह एक सच्चे समाधान के बजाय एक समाधान है, लेकिन इसने मुझे फिर से आगे बढ़ाया। आपको इसके लिए कमांड को समायोजित करना होगा:

  • libstdc++.so.6आपके सिस्टम पर फ़ाइल का स्थान - मैं locate libstdc++.so.6इसे खोजने के लिए इस्तेमाल किया
  • एमुलेटर निष्पादन योग्य पथ
  • आपके एमुलेटर का नाम

तो मेरी आज्ञा थी

LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' ~/Android/Sdk/tools/emulator -netdelay none -netspeed full -avd Nexus_5_API_21

इसके बाद एमुलेटर को लॉन्च किया जाता है, और जब आप अपना ऐप चलाते हैं तो आप इसे 'डिवाइस चयनकर्ता' संवाद में चुन सकते हैं।


धन्यवाद! लेकिन मेरे मामले में ओएस fglrx पैकेज नहीं देखता है, हालांकि मैंने इसे स्थापित किया और यह काम किया। लेकिन सिस्टम अपडेट के बाद मुझे यह बग मिल गया। मैंने इस पैकेज को पुनः स्थापित किया और यह फिर से काम हो गया :) अंग्रेजी के लिए क्षमा करें।
.ах

लिंक से पोस्ट # 23 में उल्लिखित फिक्स ने मेरे एमुलेटर को उबंटू 16.04 पर लॉन्च करने की अनुमति दी, लेकिन एमुलेटर स्क्रीन केवल काले रंग में प्रदर्शित होती है।
dazza5000

5
मैंने इस समस्या को बदसूरत तरीके से हल किया: cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 $ANDROID_HOME/tools/lib/libstdc++/libstdc++.so.6
यू जियाओ

यदि यह मददगार है, तो आप एमुलेटर का नाम इसके साथ पा सकते हैं:LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' ~/Android/Sdk/tools/emulator -list-avds
डेवीडेवडेव

170

Libstdc ++ का उपयोग करना। इसलिए.6 जो आपके सिस्टम में उपलब्ध है, एक के बजाय android sdk इस समस्या को हल करता है।

  • एमुलेटर के पास ऐसा करने के -use-system-libsलिए एक स्विच है।

    ~/Android/Sdk/tools/emulator -avd Nexus_5_API_23 -use-system-libs

  • वैकल्पिक रूप से आप ANDROID_EMULATOR_USE_SYSTEM_LIBSपर्यावरण चर को 1अपने उपयोगकर्ता / प्रणाली के लिए सेट कर सकते हैं । यह सुनिश्चित करने का लाभ है कि एमुलेटर एंड्रॉइड स्टूडियो के भीतर से लॉन्च करने पर भी काम करेगा।

अधिक विवरण: https://code.google.com/p/android/issues/detail?id=197254#c15


और उसके बाद आपके एंड्रॉइड स्टूडियो में एक कनेक्टेड डिवाइस दिखाई देगा (इस मामले में Nexus_5_API_23) जब आप अपना ऐप चलाने की कोशिश करेंगे।
अलेजो बर्नार्डिन

3
यह सबसे अच्छा उत्तर imo है क्योंकि एमुलेटर मौजूदा sdk पुस्तकालयों को स्थानांतरित या लिंक किए बिना शेल स्क्रिप्ट के माध्यम से ठीक से लॉन्च किया जा सकता है।
पोट्टिटो

19
उबंटू में 16.10 export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1को जोड़ना होगा$HOME/.profile
ग्रेग डैन

अज्ञात विकल्प: -use-system-libs :(
Jaroslav Záruba

1
@GregDan: or/etc/environment
serv-inc

123
$ cd Android/Sdk/emulator/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6

यह मेरे लिए काम किया है


1
ऐसा लगता है कि मुझे libstdc ++ इंस्टॉल करना था और उसके बाद ही मैं सिम्युलेटर चलाने में सक्षम था, आपकी मदद के लिए धन्यवाद!
पीनी चेइनी

6
my libstdc ++। तो जैसा कि / /rr/lib/x86_64-linux-gnu/libstdc++.so.6 पर स्थित है
जोशुआ

2
@ जोशुआ - सही। उबंटू 17.10+ के लिए, आपको अंतिम चरण $ ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 की आवश्यकता है
टिमोथी सी। क्विन

मेरे लिए काम किया। मुझे यह जानकर अच्छा लगेगा कि हालांकि यह टूट गया।
टोबे विल्सन

यह समाधान मेरे लिए काम करता है। Ubuntu 16.04 से 18.04 तक अपडेट के बाद एमुलेटर टूट गया। धन्यवाद!
ruX

52

मैं Ubuntu 16.04 64-बिट में एक समान त्रुटि है। मेरे लिए उत्तर # 23 समाधान महान काम करता है https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Status%20Pyerner%20Owner%20Summary%20Stars%20Reporter। % 20Opened और GroupBy = & प्रकार = & id = 197,254

$ cd $ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6 $ANDROID_HOME/android-sdk-linux_x86/tools/lib64/libstdc++

इसने मेरे लिए काम किया। आप अपने Android एसडीके के लिए अलग निर्देशिका में देखना पड़ सकता है। खान में पाया गया था/home/daniel/Android/Sdk/tools/lib64/libstdc++
डैनियल लेविन

हां, "/ उपकरण" से पहले का अनुभाग पथ उपयोगकर्ता नामों और एसडीके इंस्टॉलेशन फ़ोल्डर के आधार पर भिन्न हो सकता है।
लुइज़मेलो

3
काम करने की पुष्टि करें, ubuntu xenial में पथ /usr/lib/x86_64-linux-gnu/libstdc++.so.6 है
arisalexis

धन्यवाद .... यह ubuntu 16.10 में भी समाधान था, उपरोक्त टिप्पणी ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~ के रूप में एक ही रास्ता / Android / Sdk / उपकरण / lib64 / libstdc ++
जुआन

29

AVD सेटिंग्स में, "प्रदर्शन" सॉफ्टवेयर का उपयोग करें। बहुत ही सरल उपाय।


यह एक सरल है लेकिन यह बहुत धीमा है :)
18ах

Ubuntu 16 64bit पर काम करें, बस ड्रॉपडाउन का चयन करें :) 10x
Vasil Valchev

यही एकमात्र समाधान था जो मेरे लिए (उबंटू 16.04LTS) काम करता था
Feu

20

मैं यह करता हूं और यह काम कर रहा है

cd ~/Android/Sdk/emulator/lib64/libstdc++ 
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6

मेरे वीडियो ड्राइवर के कारण मेरे पास यह बग था, मैंने इसे बाद में पुनः इंस्टॉल किया और सभी ने काम करना शुरू कर दिया। मैं इस बग के बारे में पहले से ही भूल गया, यह बहुत अजीब है कि किसी को अभी भी इस विषय सहित समाधानों की तलाश में क्यूज की समस्या है।
хах

मेरे पास अभी यह बग 10 मिनट पहले है :)
tetar

10

बेहतर अपने सिस्टम डिफॉल्ट libstdc ++ का पता लगाएं। इसलिए ..6 कमांड का उपयोग करके libstdc ++ का पता लगाएं

और फिर ~ / Android / Sdk / उपकरण / lib64 / libstdc ++ / में फ़ाइल के एंड्रॉइड sdk संस्करण का बैक अप लें

और libstdc ++ के लिए एक सॉफ्ट लिंक बनाएं। इसलिए उपरोक्त पथ में समान नाम के साथ सिस्टम में मौजूद डिफ़ॉल्ट फ़ाइल की ओर इशारा करते हुए

इस तरह हमें कमांड लाइन से हर बार एमुलेटर को पुनरारंभ करने की आवश्यकता नहीं है।



0

मुझे अपनी मशीन पर AVD लॉन्च करने में भी बहुत समस्या हो रही थी। सिस्टम लाइबल्स का उपयोग करने, स्थानीय पुस्तकालयों, आदि के लिए सहानुभूति बनाने के साथ संघर्ष ...

क्या यह वास्तव में मेरे लिए काम करने के लिए एनवीडिया ड्राइवरों के साथ स्थापित किया गया था

sudo apt install nvidia-340

मेरा डिस्ट्रो (ध्यान दें कि मैं Ubuntu 15.10 का उपयोग नहीं कर रहा हूँ):

$ uname -a
Linux ruapehu 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

सुनिश्चित करें कि आप अपने लिए उपयुक्त एनवीडिया पैकेज की जाँच करें, क्योंकि उबंटू अलग-अलग स्वाद प्रदान करता है। उदाहरण के लिए:

$ sudo apt list "nvidia-[0-9][0-9][0-9]" 
Listing... Done
nvidia-304/xenial 304.131-0ubuntu3 amd64
nvidia-331/xenial 340.96-0ubuntu3 amd64
nvidia-340/xenial,now 340.96-0ubuntu3 amd64 [installed]
nvidia-346/xenial 352.63-0ubuntu3 amd64
nvidia-352/xenial 361.42-0ubuntu2 amd64
nvidia-361/xenial,now 361.42-0ubuntu2 amd64

मैंने सूची को नीचे-ऊपर की रणनीति में 361 से जांचा, जब तक कि मुझे एक काम नहीं मिला (340, मेरे मामले में)।

उम्मीद है की वो मदद करदे।


0

मेरे मामले में (उबंटू 16.10 64-बिट, एंड्रॉइड स्टूडियो 2.3) का काम दूसरी जगह स्थित था। तो आदेश हैं:

/home/myusername/Android/Sdk/emulator/lib64/libstdc++

➜  libstdc++ ll
total 9,3M
-rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6
-rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.0.18

➜  libstdc++ mv libstdc++.so.6 libstdc++.so.6.bak
➜  libstdc++ mv libstdc++.so.6.0.18 libstdc++.so.6.0.18.bak
➜  libstdc++ ln -s /usr/lib32/libstdc++.so.6 /home/myusername/Android/Sdk/emulator/lib64/libstdc++ 
➜  libstdc++ ln -s /usr/lib32/libstdc++.so.6.0.22 /home/myusername/Android/Sdk/emulator/lib64/libstdc++ 

➜  libstdc++ ll
total 9,3M
lrwxrwxrwx 1 myusername myusername   25 мар 29 13:18 libstdc++.so.6 -> /usr/lib32/libstdc++.so.6
-rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.0.18.bak
lrwxrwxrwx 1 myusername myusername   30 мар 29 13:19 libstdc++.so.6.0.22 -> /usr/lib32/libstdc++.so.6.0.22
-rwxr-xr-x 1 myusername myusername 4,6M мар 21 00:09 libstdc++.so.6.bak

और अब एम्यूलेटर सामान्य रूप से एवीडी प्रबंधक से लॉन्च किया गया है।


0

मुझे इस्तेमाल करने में समान समस्याएं थीं i965_dri.soऔर swrast_dri.so, मैं GUI में सॉफ़्टवेयर ग्राफ़िक्स में बदलने में सक्षम नहीं था।

इसलिए मैं एमुलेटर के फ़ोल्डर ( Show on Diskएवीडीएम में लिंक) पर गया और पायाconfig.ini

यहाँ मैंने GPU का उपयोग करने से रोकने के लिए बस निम्नलिखित पंक्ति बदली:

hw.gpu.enabled=no


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