Android studio buggy หลังจากอัพเกรดเป็น 16.10


31

ฉันเพิ่งอัพเกรดจาก 16.04 LTS ที่ android studio ของฉันทำงานได้ดีเป็น 16.10 แต่เมื่อพยายามเรียกใช้ avd ​​emulators นี่เป็นบันทึกข้อผิดพลาดที่ฉันกลับมาแทน

Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
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:  55
  Current serial number in output stream:  54
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
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 r

คือ android studio บนเส้นทางนี้opt/android-studio??
Arduino_Sentinel

สิ่งนี้เกิดขึ้นกับฉันใน Ubuntu 17.04 ด้วย @ คำตอบของ Arduino_Sentinel แก้ไขมัน
Rimian

คำตอบ:


49

ในการอัปเดตล่าสุดในสตูดิโอ android ให้ใช้ a libstdc++ที่เข้ากันไม่ได้กับไดรเวอร์ intel ที่ติดตั้งในระบบ

คุณต้องติดตั้งแพ็กเกจต่อไปนี้ก่อนหากไม่มีในระบบ lib64stdc++6และmesa-utils

sudo apt-get install lib64stdc++6 mesa-utils

จากนั้นเชื่อมโยงไลบรารีเข้ากับพา ธ เครื่องมือ sdk ของ Android

## For the /Sdk/tools path

cd ~/Android/Sdk/tools/lib64/libstdc++
# making a copy of the file
sudo mv libstdc++.so.6 libstdc++.so.6.og
# symlink
sudo ln -s /usr/lib64/libstdc++.so.6 ~/Android/Sdk/tools/lib64/libstdc++

## For the /Sdk/emulator path

cd ~/Android/Sdk/emulator/lib64/libstdc++
# making a copy of the file
sudo mv libstdc++.so.6 libstdc++.so.6.og 
# symlink
sudo ln -s /usr/lib64/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++

12
โฟลเดอร์อยู่ใน~/Android/Sdk/emulator/lib64/libstdc++สำหรับฉัน
Kevin Brotcke

42

ฉันมีปัญหานี้บน Ubuntu 17.04 และนี่คือสิ่งที่ฉันทำ

แก้ไขของคุณ.profileโดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ

atom ~/.profile

ต่อท้ายสิ่งนี้เมื่อสิ้นสุดไฟล์

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

ที่มา: ตัวแปรสภาพแวดล้อม Android SDK


2
ทางออกที่ดีที่สุด
Vladimir

สิ่งนี้ใช้ไม่ได้กับ Ubuntu 17.10 กับ Android Studio 3.01 ฉันเพิ่งเปลี่ยนชื่อโฟลเดอร์ไลบรารี ~ / Android / Sdk / emulator / lib64 / lib / libstdc ++ และมันก็ใช้ได้
Vincent Gerris

ทำงานให้ฉันใน Kubuntu 18.04 ขอบคุณมาก!
Vanessa Deagan

18

เรียกใช้โปรแกรมจำลองจากเทอร์มินัล

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME

1
มีวิธีใดที่จะทำให้เป็นค่าเริ่มต้นดังนั้นฉันไม่ต้องการเรียกใช้จากเทอร์มินัล
karora

1
@karora ดูคำตอบของ jasperagrante
Altiano Gerung

@AltianoGerung ใช่แล้วตั้งแต่ฉันห่อ Android Studio ไว้ใน shell script แล้วฉันก็ลงเอยด้วยการตั้งค่าตัวแปรที่นั่น ...
karora

4

วิธีแก้ปัญหาง่ายๆอีกอย่างหนึ่งคือการเปลี่ยนชื่อ libstdc ++ ในโฟลเดอร์ emulator ในไดเรกทอรี Android sdk มันจะย้อนกลับไปยัง libs ระบบ (จำเป็นต้องติดตั้ง) นั่น 'เพิ่งได้ผล' สำหรับฉันบน Ubuntu 17.10


ฮ่าฮ่านี่มันไร้สาระ!
Kenneth Worden

คุณหมายถึงอะไร :) โดยส่วนตัวฉันไม่เข้าใจว่าทำไม Google จึงส่งแบบนี้ ตัวเลือก use-system-libs ใช้งานไม่ได้สำหรับฉันดังนั้นจึงดูเหมือนว่าวิธีแก้ไขปัญหาที่ถูกต้องเพียงแค่ต้องทำอีกครั้งเมื่อตัวจำลองมีการอัปเดต
Vincent Gerris

2

อัพเดตตัวจำลอง

Tools -> SDK Manager -> SDK Tools -> Android Emulator

ป้อนคำอธิบายรูปภาพที่นี่

นี่เป็นข้อผิดพลาดที่กำลังได้รับการแก้ไขใน 27.2.9

Android Emulator รุ่น Linux นั้นสร้างขึ้นโดยใช้ Clang C ++ Toolchain ที่ทันสมัย การเปลี่ยนแปลงนี้แก้ไขปัญหาของตัวจำลองที่ล้มเหลวในการเริ่มต้นเนื่องจากข้อผิดพลาด libGL และ libstdc ++


FYI: BTW สร้าง symlink ด้วยตนเองไม่ใช่ความคิดที่ดี

การตั้งค่าANDROID_EMULATOR_USE_SYSTEM_LIBSเป็นวิธีที่ดีกว่า อย่างไรก็ตามนั่นก็ไม่จำเป็นเมื่อคุณสามารถอัปเดตตัวจำลอง


1

ฉันเปลี่ยนการเร่งความเร็วกราฟิกจากรถยนต์ / ฮาร์ดแวร์เป็นซอฟต์แวร์ ไดรเวอร์ที่ทำให้เกิดปัญหานี้จำเป็นต้องใช้ฮาร์ดแวร์จริงสำหรับการเร่งความเร็วกราฟิกเท่านั้น ถ้าคุณไม่ทำงานกับเกมหรือซอฟต์แวร์ที่เน้นกราฟิกอื่น ๆ คุณไม่จำเป็นต้องใช้สิ่งนี้จริงๆ สิ่งนี้จะต้องทำในแต่ละ adv แต่ยังคงตั้งค่าไว้เมื่อเสร็จแล้ว


-1

ลิงค์นี้ช่วย ฉันแก้ไขตำแหน่งของ libstdc ++ ดังนั้นตามการติดตั้ง Ubuntu 17.10 ของฉัน libstdc ++. ดังนั้นตำแหน่งของไฟล์จึงแตกต่างกัน ค้นหาคอมพิวเตอร์ของคุณเพื่อหา libstdc ++

Ubuntu 17.10 และ Android Studio 3.1

cd /opt/android-sdk/emulator/lib64/libstdc++
mv libstdc++.so.6{,.bak}
mv libstdc++.so.6.0.19{,.bak}
ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.