16.10'a yükselttikten sonra Android stüdyosu arabası


31

Geçenlerde android stüdyomun 16.10'a kadar çalıştığı 16.04 LTS'den yükselttim ancak avd emülatörümü çalıştırmaya çalışırken, bunun yerine geri aldığım hata günlüğü.

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

Bu yolda android stüdyosu nedir opt/android-studio?
Arduino_Sentinel

Bu benim için Ubuntu 17.04'te de olur. @ Arduino_Sentinel'in cevabı düzeltti.
Rimian

Yanıtlar:


49

Son android stüdyo güncellemelerinde google libstdc++, sistemde yüklü olan intel sürücüsü ile uyumlu olmayan bir google kullan

Önce orada değilse sistemde aşağıdaki paketleri yüklemek zorunda lib64stdc++6vemesa-utils

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

Ardından kütüphaneleri android sdk araçları yoluna bağlayın

## 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
Klasör ~/Android/Sdk/emulator/lib64/libstdc++benim içindi .
Kevin Brotcke

42

Ayrıca Ubuntu 17.04'te de bu problem vardı ve işte yaptım.

Senin düzenleyin .profilefavori metin editörü kullanarak

atom ~/.profile

Bunu dosyanın sonuna ekle

export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

Kaynak: Android SDK Ortam Değişkeni


2
en iyi çözüm
Vladimir

Bu, Ubuntu 17.10'da Android Studio 3.01 ile çalışmadı. Ben sadece ~ / Android / Sdk / emulator / lib64 / lib / libstdc ++ kütüphane klasörünü yeniden adlandırdım ve işe yaradı.
Vincent Gerris

Benim için Kubuntu 18.04'te çalıştı. Çok teşekkür ederim!
Vanessa Deagan,

18

Öykünücüyü terminalden çalıştır

emulator -use-system-libs -avd YOUR_VIRTUAL_DEVICE_NAME

1
Bunu varsayılan yapmanın bir yolu var mı, o yüzden terminalden çalıştırmam gerekmez mi?
karora

1
@karora, jasperagrante'nin cevabını görüyor
Altiano Gerung,

@AltianoGerung evet, Zaten Android Studio'yu bir kabuk betiğine sardığımdan beri değişkenleri ayarlamaya başladım ...
karora

4

Başka bir basit geçici çözüm, Android sdk dizinindeki emulator klasöründeki libstdc ++ dosyasını yeniden adlandırmaktır. Bu sistem libs geri düşecek (yüklenmesi gerekir). Bu sadece benim için Ubuntu 17.10'da çalıştı.


Haha, bu saçmalık!
Kenneth Worden,

Ne demek istiyorsun :)? Google’ın neden bu şekilde gönderildiğini şahsen anlamıyorum. Use-system-libs seçeneği benim için işe yaramadı, bu yüzden geçerli bir geçici çözüm gibi görünüyor, öykünücüsü güncellendiğinde bir daha yapmak zorunda.
Vincent Gerris,

2

Öykünücüyü güncelleyin.

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

görüntü tanımını buraya girin

Bu, 27.2.9'da düzeltilen bir hatadır.

Android Emulator'un Linux sürümü şimdi modern bir Clang C ++ araç zinciri kullanılarak oluşturulmuştur. Bu değişiklik, öykünücünün libGL ve libstdc ++ hataları nedeniyle başlatılamaması sorununu giderir.


Bilginize: BTW elle sembolik bağlantılar oluşturmak iyi bir fikir değildir.

Ayar ANDROID_EMULATOR_USE_SYSTEM_LIBSdaha iyi bir yaklaşımdır. Ancak, öykünücüyü yalnızca güncelleyebildiğinizde de gerekli değildir.


1

Grafik hızlandırmayı otomatik / donanımdan yazılıma geçirdim. Bu soruna neden olan sürücülerin yalnızca grafik hızlandırması için gerçek donanım kullanması gerekir. Bir oyun veya yoğun grafikli bir yazılım üzerinde çalışmadığınız sürece, buna gerçekten ihtiyacınız yok. Bu her adv üzerinde yapılmalı fakat bir kez yapıldığında kalmalıdır.


-1

Bu bağlantı yardım. Ubuntu 17.10 kurulumumu esas alarak libstdc ++ 'un konumunu değiştirdim. Libstdc ++. Yani dosya konumu farklıydı. Bilgisayarınızda libstdc ++ arayın.

Ubuntu 17.10 ve 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 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.