Xưởng Android bị lỗi sau khi nâng cấp lên 16.10


31

Gần đây tôi đã nâng cấp từ 16.04 LTS trong đó studio android của tôi hoạt động tốt lên 16.10 nhưng khi thử chạy trình giả lập avd của tôi, đây là nhật ký lỗi tôi nhận được thay thế

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

là studio android trên con đường này opt/android-studio??
Arduino_Sentinel

Điều này cũng xảy ra với tôi trên Ubuntu 17.04. Câu trả lời của @ Arduino_Sentinel đã sửa nó.
Rimian

Câu trả lời:


49

Trong các bản cập nhật studio android gần đây, google sử dụng libstdc++trình điều khiển không tương thích với trình điều khiển intel được cài đặt trên hệ thống

Trước tiên bạn phải cài đặt các gói sau nếu không có trên hệ thống lib64stdc++6mesa-utils

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

Sau đó symlink các thư viện đến đường dẫn công cụ 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
Thư mục là trong ~/Android/Sdk/emulator/lib64/libstdc++tôi.
Kevin Brotcke

42

Tôi cũng gặp vấn đề này trên Ubuntu 17.04 và đây là những gì tôi đã làm.

Chỉnh sửa của bạn .profilebằng cách sử dụng trình soạn thảo văn bản yêu thích của bạn

atom ~/.profile

Nối cái này vào cuối tập tin

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

Nguồn: Biến môi trường SDK Android


2
giải pháp tốt nhất
Vladimir

Điều này không hoạt động trên Ubuntu 17.10 với Android Studio 3.01. Tôi vừa đổi tên thư mục thư viện ~ / Android / Sdk / trình giả lập / lib64 / lib / libstdc ++ và nó đã hoạt động.
Vincent Gerris

Làm việc cho tôi trên Kubfox 18.04. Cảm ơn nhiều!
Vanessa Deagan

18

Chạy trình giả lập từ thiết bị đầu cuối

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME

1
Có cách nào để làm điều này thành mặc định, vì vậy tôi không cần phải chạy nó từ một thiết bị đầu cuối?
karora

1
@karora xem câu trả lời của jasperagrante
Altiano Gerung

@AltianoGerung yeah, vì tôi đã gói Android Studio trong một tập lệnh shell nên cuối cùng tôi đã đặt biến ở đó ...
karora

4

một cách giải quyết đơn giản khác là đổi tên libstdc ++ trong thư mục giả lập trong thư mục sdk của Android. Nó sẽ dự phòng cho hệ thống libs (cần được cài đặt). Điều đó 'chỉ hoạt động' đối với tôi trên Ubuntu 17.10.


Haha điều này thật nực cười!
Kenneth Worden

Ý anh là gì :)? Cá nhân tôi không hiểu tại sao Google gửi nó như thế này. Tùy chọn lib-system-libs không hoạt động đối với tôi, vì vậy nó có vẻ như là một cách giải quyết hợp lệ, người ta chỉ phải làm lại khi trình giả lập được cập nhật.
Vincent Gerris

2

Cập nhật trình giả lập.

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

nhập mô tả hình ảnh ở đây

Đây là một lỗi đang được sửa trong 27.2.9.

Phiên bản Linux của Trình giả lập Android hiện được xây dựng bằng chuỗi công cụ Clang C ++ hiện đại. Thay đổi này khắc phục sự cố trình giả lập không khởi động do lỗi libGL và libstdc ++.


FYI: BTW tự tạo liên kết tượng trưng không phải là một ý tưởng tốt.

Thiết lập ANDROID_EMULATOR_USE_SYSTEM_LIBSlà một cách tiếp cận tốt hơn. Tuy nhiên, điều đó cũng không cần thiết khi bạn chỉ có thể cập nhật trình giả lập.


1

Tôi đã chuyển đổi tăng tốc đồ họa từ tự động / phần cứng sang phần mềm. Các trình điều khiển gây ra vấn đề này chỉ cần sử dụng phần cứng thực sự để tăng tốc đồ họa. Trừ khi bạn làm việc trên một trò chơi hoặc phần mềm chuyên sâu về đồ họa khác, bạn không thực sự cần điều này. Điều này phải được thực hiện trên mỗi adv nhưng vẫn được thiết lập một lần.


-1

Liên kết này giúp. Tôi đã sửa đổi vị trí của libstdc ++. Vì vậy, dựa trên cài đặt Ubuntu 17.10 của tôi. Libstdc ++. Vì vậy, vị trí tập tin là khác nhau. Tìm kiếm máy tính của bạn cho libstdc ++.

Ubuntu 17.10 và 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 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.