Android studio buggy setelah ditingkatkan ke 16.10

31

Saya baru-baru ini memutakhirkan dari 16,04 LTS di mana studio android saya bekerja dengan baik menjadi 16.10 tetapi mencoba menjalankan emulator AVD saya, ini adalah log kesalahan yang saya dapatkan sebagai gantinya

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
pengguna637425
sumber
apakah studio android ada di jalur ini opt/android-studio??
Arduino_Sentinel
Ini juga terjadi pada saya di Ubuntu 17.04. @ Jawaban Arduino_Sentinel memperbaikinya.
Rimian

Jawaban:

49

Dalam pembaruan studio android terbaru, google menggunakan libstdc++yang tidak kompatibel dengan driver intel yang diinstal pada sistem

Pertama-tama Anda harus menginstal paket berikut jika tidak ada pada sistem lib64stdc++6danmesa-utils

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

Kemudian symlink pustaka ke jalur alat 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++
Arduino_Sentinel
sumber
12
Folder ada ~/Android/Sdk/emulator/lib64/libstdc++untuk saya.
Kevin Brotcke
42

Saya juga punya masalah ini di Ubuntu 17.04 dan inilah yang saya lakukan.

Edit Anda .profilemenggunakan editor teks favorit Anda

atom ~/.profile

Tambahkan ini di akhir file

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

Sumber: Variabel Lingkungan Android SDK

jasperagrante
sumber
2
solusi terbaik
Vladimir
Ini tidak berfungsi di Ubuntu 17.10 dengan Android Studio 3.01. Saya baru saja mengganti nama folder perpustakaan ~ / Android / SDK / emulator / lib64 / lib / libstdc ++ dan berhasil.
Vincent Gerris
Bekerja untuk saya di Kubuntu 18.04. Terima kasih banyak!
Vanessa Deagan
18

Jalankan emulator dari terminal

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME
katenzo
sumber
1
Apakah ada cara untuk menjadikan ini default, jadi saya tidak perlu menjalankannya dari terminal?
karora
1
@karora lihat jawaban
jasperagrante
@AltianoGerung ya, karena saya sudah membungkus Android Studio dalam skrip shell, saya akhirnya mengatur variabel di sana ...
karora
4

solusi sederhana lainnya adalah mengubah nama libstdc ++ di folder emulator di direktori Android SDK. Ini akan mundur ke sistem libs (perlu diinstal). Itu 'baru saja berfungsi' untuk saya di Ubuntu 17.10.

Vincent Gerris
sumber
Haha ini konyol!
Kenneth Worden
Apa maksudmu :)? Saya pribadi tidak mengerti mengapa Google mengirimkannya seperti ini. Opsi use-system-libs tidak bekerja untuk saya, jadi sepertinya solusi yang valid, kita hanya perlu melakukannya lagi ketika emulator diperbarui.
Vincent Gerris
2

Perbarui emulator.

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

masukkan deskripsi gambar di sini

Ini adalah bug yang sedang diperbaiki di 27.2.9.

Versi Linux dari Android Emulator sekarang dibangun menggunakan toolchain Clang C ++ modern. Perubahan ini memperbaiki masalah emulator yang gagal memulai karena kesalahan libGL dan libstdc ++.


FYI: BTW secara manual membuat symlink bukanlah ide yang baik.

Pengaturan ANDROID_EMULATOR_USE_SYSTEM_LIBSadalah pendekatan yang lebih baik. Namun, itu juga tidak perlu ketika Anda bisa memperbarui emulator.

Gayan Weerakutti
sumber
1

Saya mengalihkan akselerasi grafik dari otomatis / perangkat keras ke perangkat lunak. Driver yang menyebabkan masalah ini hanya diperlukan untuk menggunakan perangkat keras nyata untuk akselerasi grafis. Kecuali jika Anda mengerjakan game atau perangkat lunak intensif grafis lainnya, Anda tidak benar-benar membutuhkannya. Ini harus dilakukan pada setiap adv tetapi tetap ditetapkan setelah dilakukan.

mengapa aku tidak bisa dari
sumber
-1

Tautan ini membantu. Saya memang memodifikasi lokasi libstdc ++. Jadi berdasarkan instalasi Ubuntu 17.10 saya. Libstdc ++. Jadi lokasi file berbeda. Cari libstdc ++ di komputer Anda

Ubuntu 17.10 dan 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 
Scott
sumber