【问题标题】:Android Studio AVD Linux AMDGPU driverAndroid Studio AVD Linux AMDGPU 驱动程序
【发布时间】:2016-09-17 15:33:51
【问题描述】:

我无法在 Linux 上使用最新的开源 AMD 驱动程序 AMDGPU 通过 AVD(Android 虚拟设备管理器)启动任何虚拟设备。

  • GPU:AMD Rx 460
  • CPU:Intel Core i5-4460 CPU @ 3.20GHz × 4
  • 操作系统:Solus 操作系统
  • 内核:4.7.4
  • 台面:12.0.3
  • AMDGPU:1.1.1

错误信息:

Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
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:  153 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  49
  Current serial number in output stream:  48
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
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:  153 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  49
  Current serial number in output stream:  48
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
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:  153 (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

截图形式的错误信息:avd amdgpu error

我认为问题在于它需要名为 RadeonSI 的旧开源驱动程序,但我的显卡不再使用它,它使用更新的 AMDGPU。

任何提示我将如何解决这个问题?

【问题讨论】:

    标签: android linux android-studio avd amd-gpu


    【解决方案1】:

    对不起,我错了。这不是 AMDGPU 的问题。

    以前知道 AVD 捆绑库存在问题。

    ~/Android/Sdk/tools/emulator -avd Nexus_5_API_23 -use-system-libs
    

    说明

    ~/Android/Sdk/tools/emulator 是您的 SDK 的路径。您可以在 Android Studio 中找到:文件 -> 设置 -> 外观和行为 -> 系统设置 -> Android SDK

    Nexus_5_API_23 是您必须在 Android Studio 中创建的虚拟设备。您可以找到可用设备的列表:

    ~/Android/Sdk/tools/emulator -avd -list-avds

    最后: -use-system-libs 使用你的系统库而不是捆绑的


    以上是临时解决方案。我找到的永久解决方案可能不是那么好。所以使用它需要您自担风险。

    在你的主目录.bashrc(隐藏文件)中设置环境变量:

    export ANDROID_HOME=/path/to/your/android/sdk

    重启/注销。

    cd $ANDROID_HOME/tools/lib64/libstdc++
    mv libstdc++.so.6 libstdc++.so.6.bak
    ln -s /usr/lib64/libstdc++.so.6 $ANDROID_HOME/tools/lib64/libstdc++
    

    显然要确保$ANDROID_HOME/tools/lib64/libstdc++ 是有效路径。这取决于您提取/移动 sdk 目录的位置。

    在这之后一切都对我有用。

    还有另一种看起来更合法的解决方案,但遗憾的是对我不起作用。

    export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1

    Issue on Google Bug Tracker

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-20
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多