【问题标题】:Abort message: 'couldn't find an OpenGL ES implementation'中止消息:“找不到 OpenGL ES 实现”
【发布时间】:2017-11-06 13:27:52
【问题描述】:

我正在尝试在我的设备上运行棒棒糖,当我刷新图像时,我得到了以下日志

--------- beginning of crash
F/libc    ( 1565): Fatal signal 6 (SIGABRT), code -6 in tid 1565 (surfaceflinger)
I/DEBUG   ( 1572): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   ( 1572): Build fingerprint:     'Android/full_arndale/arndale:5.0.2/LRX22G/veera05211114:eng/test-keys'
I/DEBUG   ( 1572): Revision: '0'
I/DEBUG   ( 1572): ABI: 'arm'
I/DEBUG   ( 1572): pid: 1565, tid: 1565, name: surfaceflinger  >>>     /system/bin/surfaceflinger <<<
I/DEBUG   ( 1572): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
I/DEBUG   ( 1572): Abort message: 'couldn't find an OpenGL ES implementation'
I/DEBUG   ( 1572):     r0 00000000  r1 0000061d  r2 00000006  r3 00000000
I/DEBUG   ( 1572):     r4 b6f34114  r5 00000006  r6 00000002  r7 0000010c
I/DEBUG   ( 1572):     r8 b6962000  r9 00000000  sl 00000000  fp beebfa9c
I/DEBUG   ( 1572):     ip 0000061d  sp beebf510  lr b6ebdf21  pc b6ee1858  cpsr 60070010
I/DEBUG   ( 1572): 
I/DEBUG   ( 1572): backtrace:
I/DEBUG   ( 1572):     #00 pc 0003a858  /system/lib/libc.so (tgkill+12)
I/DEBUG   ( 1572):     #01 pc 00016f1d  /system/lib/libc.so (pthread_kill+52)
I/DEBUG   ( 1572):     #02 pc 00017b2f  /system/lib/libc.so (raise+10)
I/DEBUG   ( 1572):     #03 pc 0001439d  /system/lib/libc.so (__libc_android_abort+36)
I/DEBUG   ( 1572):     #04 pc 00012a3c  /system/lib/libc.so (abort+4)
I/DEBUG   ( 1572):     #05 pc 00007a59  /system/lib/libcutils.so (__android_log_assert+88)
I/DEBUG   ( 1572):     #06 pc 000430b9  /system/lib/libEGL.so
I/DEBUG   ( 1572):     #07 pc 00010641  /system/lib/libEGL.so
I/DEBUG   ( 1572):     #08 pc 00010e21  /system/lib/libEGL.so (eglGetDisplay+24)
I/DEBUG   ( 1572):     #09 pc 000171d5  /system/lib/libsurfaceflinger.so (android::SurfaceFlinger::init()+44)
I/DEBUG   ( 1572):     #10 pc 000007e1  /system/bin/surfaceflinger
I/DEBUG   ( 1572):     #11 pc 000128ed  /system/lib/libc.so (__libc_init+44)
I/DEBUG   ( 1572):     #12 pc 000008d8  /system/bin/surfaceflinger
I/mediaserver( 1574): ServiceManager: 0xb60500c0
I/AudioFlinger( 1574): Using default 3000 mSec as standby time.
I/ServiceManager( 1574): Waiting for service batterystats...
I/DEBUG   ( 1572): 
I/DEBUG   ( 1572): Tombstone written to: /data/tombstones/tombstone_00
 I/ServiceManager( 1563): service 'media.audio_flinger' died

我不知道 openGl 出了什么问题? 当我尝试棒棒糖时,Kitkat 在我的设备上运行良好我遇到了这个问题

【问题讨论】:

  • 嗨!我在构建 AOSP 时遇到了同样的问题。能否分享一下您的解决方案,谢谢!
  • 嘿,请确认您的 AOSP 中支持 GPU。在我的情况下,我不支持我的板,即我正在使用 arndale 板。我不支持马里图书馆,因为他们停止了支持。
  • 您所说的“确认您有 GPU 支持”是什么意思。建筑有特殊的选择吗?我是在 Nexus 10 上构建的,所以不是板子。
  • 我的意思是它有在 Nexus 中使用的 GPU 的图形库吗?否则你需要实现软件渲染,即绕过硬件 gpu

标签: android opengl-es


【解决方案1】:

这是因为在 /system/lib/egl 或 /vendor/lib/egl 中都找不到 OpenGL ES 库

【讨论】:

  • 嗨!怎么修?在哪里获得正确的来源,用于添加?
【解决方案2】:

添加到 colordancer 的答案,这是报告致命错误的

https://android.googlesource.com/platform/frameworks/native/+/android-7.0.0_r1/opengl/libs/EGL/Loader.cpp#229

这是因为它没有在 /vendor 或 /system 分区中找到 EGL ES 库

目前,

libEGL.so
libGLESv2.so
libGLESv1_CM.so

这些是适用于 Android 的可用 EGL ES 库。

解决方案: 只需从 stock rom 中找到文件并将其放入 ROM 并检查它是否继续。如果是,您可以将其添加到供应商预构建中。如果没有,可能还有其他问题

注意事项 目前在我的 OnePlus 2 上,运行我的haloOS 版本,具有以下内容:

/vendor

root@:/vendor # busybox find . | grep egl                                  
./lib/egl
./lib/egl/eglSubDriverAndroid.so
./lib/egl/libEGL_adreno.so
./lib/egl/libGLESv1_CM_adreno.so
./lib/egl/libGLESv2_adreno.so
./lib/egl/libQTapGLES.so
./lib/egl/libq3dtools_adreno.so
./lib/egl/libq3dtools_esx.so
./lib64/egl
./lib64/egl/eglSubDriverAndroid.so
./lib64/egl/libEGL_adreno.so
./lib64/egl/libGLESv1_CM_adreno.so
./lib64/egl/libGLESv2_adreno.so
./lib64/egl/libQTapGLES.so
./lib64/egl/libq3dtools_adreno.so
./lib64/egl/libq3dtools_esx.so

而且,在 /system

root@:/system # find . | grep egl
./app/Gallery2/lib/arm64/libjni_eglfence.so
./lib64/libjni_eglfence.so
./vendor/lib/egl
./vendor/lib/egl/eglSubDriverAndroid.so
./vendor/lib/egl/libEGL_adreno.so
./vendor/lib/egl/libGLESv1_CM_adreno.so
./vendor/lib/egl/libGLESv2_adreno.so
./vendor/lib/egl/libQTapGLES.so
./vendor/lib/egl/libq3dtools_adreno.so
./vendor/lib/egl/libq3dtools_esx.so
./vendor/lib64/egl
./vendor/lib64/egl/eglSubDriverAndroid.so
./vendor/lib64/egl/libEGL_adreno.so
./vendor/lib64/egl/libGLESv1_CM_adreno.so
./vendor/lib64/egl/libGLESv2_adreno.so
./vendor/lib64/egl/libQTapGLES.so
./vendor/lib64/egl/libq3dtools_adreno.so
./vendor/lib64/egl/libq3dtools_esx.so

【讨论】:

    【解决方案3】:

    1) 下载相应的硬件驱动程序,尤其是提供 egl 实现的 GPU,例如libGLESv2_andreno.so, libGLESv2.so...,并将二进制文件解压到您的 AOSP 目录中。

    参考链接:https://developers.google.com/android/nexus/drivers

    2) 重建安卓系统镜像

    制作-j8

    3) 擦除数据并将图像刻录到设备上

    快速启动 -w

    fastboot flashall

    【讨论】:

      【解决方案4】:

      您似乎没有包含所需的专有库。

      请按照link 中的说明下载特定库。然后,将二进制文件放在您的 AOSP 源项目的根目录中并执行

      make clobber && make -j4
      

      那你就可以走了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-13
        • 2017-09-26
        相关资源
        最近更新 更多