লিনাক্সে এমুলেটর চালু করতে পারে না (উবুন্টু 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

কিভাবে ঠিক হবে এটা? আমি অনুরূপ ত্রুটিযুক্ত বিষয়গুলি পড়ি তবে এটি আমার সহায়তা করে না।


এই উত্তরে প্রদত্ত এক্সট্রালাইনগুলি ছাড়াই এখানে একটি সুবিধাজনক সমাধান পান: [ github.com/rimian/cordova-ember-android]
রিফ্লে

উত্তর:


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 ++। So.6 ব্যবহার করা এই সমস্যাটি সমাধান করে।

  • এমুলেটরটির এটি করার জন্য একটি সুইচ রয়েছে -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
এটি সেরা উত্তর ইমো কারণ এমুলেটরটি বিদ্যমান এসডিকে লাইব্রেরিগুলিতে সরানো বা লিঙ্ক না করে শেল স্ক্রিপ্টের মাধ্যমে সঠিকভাবে চালু করা যেতে পারে।
পোটাইটো

19
উবুন্টুতে 16.10 export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1এ যোগ করতে হবে$HOME/.profile
গ্রেগ ড্যান

অজানা বিকল্প: -ব্যবস্থা-সিস্টেম-
লিবস

1
@ গ্রেগডান: বা/etc/environment
সার্ভ-ইনক

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
আমার libstdc ++। so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 এ অবস্থিত
জোশুয়া

2
@ জোশুয়া - সঠিক উবুন্টু 17.10+ এর জন্য আপনার শেষ ধাপের জন্য নিম্নলিখিতটি দরকার $ ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6
টিমোথি সি। কুইন

আমার জন্য কাজ করেছেন। যদিও এটি ভেঙেছিল তা আমি জানতে চাই।
টবি উইলসন

এই সমাধানটি আমার পক্ষে কাজ করে। এমুলেটর উবুন্টু 16.04 থেকে 18.04 এ আপডেট হওয়ার পরে ভেঙে গেছে। ধন্যবাদ!
রুএক্স

52

আমার উবুন্টুতে 16.04 64-বিটে অনুরূপ ত্রুটি রয়েছে। আমার জন্য উত্তর # 23 সমাধানটি দুর্দান্ত কাজ করে https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Status%20Priority%20Owner%20 সামিউরি ২০২০ স্টার ১০২০ রিপোর্টার % 20Opened & groupby = & সাজানোর = & আইডি = 197254

$ 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++

এটি আমার পক্ষে কাজ করেছে। যদিও আপনার অ্যান্ড্রয়েড এসডিকে জন্য আপনাকে বিভিন্ন ডিরেক্টরি দেখতে হবে। আমার পাওয়া গিয়েছিল/home/daniel/Android/Sdk/tools/lib64/libstdc++
ড্যানিয়েল লেভিন

হ্যাঁ, "/ সরঞ্জামসমূহ" এর পূর্বে বিভাগের পথটি ব্যবহারকারীর নাম এবং এসডিকে ইনস্টলেশন ফোল্ডারের উপর নির্ভর করে পৃথক হতে পারে।
লুইজমেলো

3
কাজ নিশ্চিত করুন, উবুন্টু জেনিয়ালে পথটি /usr/lib/x86_64-linux-gnu/libstdc++.so.6
arisalexis

আপনাকে ধন্যবাদ .... এটি ওবুন্টু 16.10 তেও একই সমাধান ছিল, উপরের মন্তব্যের মতো একই পথ ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~ / Android / Sdk / সরঞ্জাম / lib64 / libstdc ++
জুয়ান

29

এভিডি সেটিংসে এমুলেটেড পারফরম্যান্স গ্রাফিক্স বিকল্পে "সফ্টওয়্যার" ব্যবহার করুন। খুব সহজ সমাধান।


এটি একটি সাধারণ তবে এটি খুব ধীর :)
Шах

উবুন্টু 16 64 বিটের উপর কাজ করুন, কেবল ড্রপডাউন নির্বাচন করুন :) 10x
ভাসিল ভালচেভ

এটাই ছিল কেবলমাত্র সমাধান যা আমার পক্ষে কাজ করেছিল (উবুন্টু 16.04LTS)
ফিউ

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

আমার ভিডিও ড্রাইভারের কারণে আমার এই বাগটি ছিল, আমি এটি পরে পুনরায় ইনস্টল করেছি এবং সমস্ত কাজ শুরু করে। আমি ইতিমধ্যে এই ত্রুটিটি সম্পর্কে ভুলে গিয়েছি, এটি অত্যন্ত অদ্ভুত যে কারও কাছে এখনও এই সমস্যা সহ অনেকগুলি সমাধান অনুসন্ধানের ক্ষেত্রে সমস্যা রয়েছে।
18

আমি এই বাগটি মাত্র 10 মিনিট আগে
পেয়েছি

10

আপনার সিস্টেমে ডিফল্ট libstdc ++ আরও ভালভাবে সনাক্ত করুন libstdc ++ কমান্ডটি ব্যবহার করে so.6।

এবং তারপরে ~ / অ্যান্ড্রয়েড / এসডিকে / সরঞ্জামগুলি / lib64 / libstdc ++ / এ ফাইলের অ্যান্ড্রয়েড এসডিকে সংস্করণটির ব্যাক আপ নিন

এবং libstdc ++ এর জন্য একটি সফট লিঙ্ক তৈরি করুন সুতরাং উপরের পাথটিতে একই নামের সাথে সিস্টেমে বিদ্যমান ডিফল্ট ফাইলটির প্রতিস্থাপন করে

এইভাবে আমাদের কমান্ড লাইন থেকে প্রতিবার এমুলেটরটি পুনরায় চালু করার দরকার নেই।



0

আমার মেশিনে এভিডি চালু করতে আমারও অনেক সমস্যা ছিল। সিস্টেম লাইব ব্যবহার করে, স্থানীয় গ্রন্থাগারগুলিতে সিমলিঙ্ক তৈরি ইত্যাদি নিয়ে লড়াই করা ...

আমার পক্ষে যা সত্যই এটি কাজ করে তা হ'ল এনভিডিয়া ড্রাইভারগুলি ইনস্টল করা

sudo apt install nvidia-340

আমার ডিস্ট্রো (নোট করুন আমি উবুন্টু 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-বিট, অ্যান্ড্রয়েড স্টুডিও ২.৩) লিবস অন্য জায়গায় অবস্থিত। সুতরাং আদেশগুলি হল:

/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আমি জিইআইতে সফ্টওয়্যার গ্রাফিকগুলিতে পরিবর্তন করতে সক্ষম হইনি।

সুতরাং আমি এমুলেটর এর ফোল্ডারে গিয়েছিলাম ( Show on Diskএভিডিএম-এর লিঙ্ক) এবং এটি পেয়েছিconfig.ini

এখানে আমি জিপিইউ ব্যবহার বন্ধ করার জন্য কেবল নিম্নলিখিত লাইনটি পরিবর্তন করেছি:

hw.gpu.enabled=no


-1

$ সিডি ~ / অ্যান্ড্রয়েড / এসডিকে / এমুলেটর / লিব 64 / লিবস্টডিসি ++ $ এমভি লিবস্টডিসি ++। so.6 লিবস্টডিসি ++। .6

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.