I've written a program in C++ for android which uses GLESv3. I am attempting to run this on a Samsung S4 Active, with Android 4.3
Supposidly the phone supports GLES3
However, when attempting to run my application, the program fails to load my library with this error:
java.lang.UnsatisfiedLinkError: dlopen failed: empty/mssing DT_HASH in "libGLESv3.so" (built with --hash-style=gnu?)
This seems to indicate the library file itself was compiled wrong, and of course there's no way for me to change that. Am I missing something obvious here, or is GLES v3 broken on the S4 Active?
Edit 5/5/2014 - Success
I can't figure out how to edit the below posts, so I'm going to edit this one for anyone else with the same problem.
My phone for whatever reason doesn't have the GLES3 library, but, I can still use the GLES3 features. I can't link to them directly, doing so produces the errors that I detailed in these posts. Instead the secret is to use eglGetProcAddress in a matter similar to how GLEW works on windows. That allowed me to use GLES3 functions on my phone without linking to them directly. eglGetProcAddresseeglGetProcAddressglGetProcAddress"
I haven't heard of any issues with the S4 Active, and we do extensive testing with OpenGL ES 3 content for all of the commercial drivers that we provide to customers, so I'd be really surprised if this is a matter of OpenGL ES 3 not working at all.
Are you sure you're building correctly?
I apologize for my delay getting back to you. Here's the build files:
Application.mk:
Note that SDL does not natively support GLESv3, but I'm working on that. For now I can't even get the program to link at runtime properly. (But build complets correctly)
Here's some screenshots of the error. The second indicates the exact error when loading libMain.so (compiled by the above)
http://imgur.com/a/3rRQV
Sorry for the double post (there's no edit that I can find?) but the program links correctly on an android emulator and runs.
The only conclusion I can arrive at is that Qualcomm provided incorrectly compiled libraries for the Samsung S4 Active, which would be rediculous if true, so I hope you have another explanation.
Super sorry about the triple post but I felt this was important information:
the Android NDK r9c comes with a GLESv3 sample. This sample crashes on my s4 active and logcat spits out exactly the same error.
Just some background I think I should have provided earlier:
Phone: Samsung S4 Active (SGH-I537)
Android Version: 4.3
Upon running the compiled sample (compiled using the command specified in the sample readme, nothing more nothing less) the app crashes and logcat says:
Looks like my phone has an incorrectly compiled library for GLES v3, so much for "extensive testing" Is there any way to make this work? I bought this phone as my only test platform and now it's too late to return it and get a device which actually works.... Very frustrating