Missing Opengl Drivers On Android Emulator
Solution 1:
In this link:
http://osdir.com/ml/android-porting/2009-06/msg00282.html
it says:
libEGL.so and libGLESv2.so implements EGL and OpenGL ES through libhgl.so and libagl.so. That is, libhgl.so and libagl.so are dlopen()ed by libEGL.so. All EGL and OpenGL ES calls will finally call into libhgl.so and/or libagl.so.
and here:
http://osdir.com/ml/android-porting/2009-06/msg00288.html
libagl.so is an pure software impl. For your accelerated impl., you need to provide libhgl.so so that libEGL.so will be able to use it. It is expected that libhgl.so implements and exports both eglXXX and glXXX symbols.
I guess that indicates that the missing file will only exist on the device itself, but that the app should run with the software driver on the emulator. The numerous screenshots on the web of OpenGL apps on the Android emulator also indicates that OpenGL should work fine on the emulator. Any other possible reasons why you are not able to get OpenGL going?
Solution 2:
The logic of loading EGL user space driver is at frameworks/native/opengl/libs/EGL/Loader.cpp. Basically there are three cases:
- Running with emulator in software rendering mode
- Running with emulator in OpenGL mode. This is where libhgl.so is loaded for earlier version of Android.
- Running with actual device.
The emulator coming with ADT does not work well for case 2. But emulators are improved over recent years. You can use latest Android Studio which has a better emulator or leapdroid at http://www.leapdroid.com/
Post a Comment for "Missing Opengl Drivers On Android Emulator"