Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android NDK-OpenGL ES 2.0-库链接_Android_Opengl Es_Android Ndk_Opengl Es 2.0 - Fatal编程技术网

Android NDK-OpenGL ES 2.0-库链接

Android NDK-OpenGL ES 2.0-库链接,android,opengl-es,android-ndk,opengl-es-2.0,Android,Opengl Es,Android Ndk,Opengl Es 2.0,使用NDK编写OpenGLES2.0程序。我面临一个名为未实现OpenGL ES API的错误 我的程序没有任何OpenGL ES 1.x调用。emulator GPU支持也已启用。makefile如下所示 /*Android.mk*/ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := NDKTestApp LOCAL_SRC_FILES := firstTriangle.cpp LOCAL_LDLI

使用NDK编写OpenGLES2.0程序。我面临一个名为未实现OpenGL ES API的错误

我的程序没有任何OpenGL ES 1.x调用。emulator GPU支持也已启用。makefile如下所示

/*Android.mk*/

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := NDKTestApp
LOCAL_SRC_FILES := firstTriangle.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2
LOCAL_STATIC_LIBRARIES := android_native_app_glue 

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)
我没有在任何地方链接1.x版本库,但在日志中仍然可以看到

loaded .../libGLESv1_CM_emulation.so
loaded .../libGLESv2_emulation.so
所以我认为问题是函数在版本1库中被搜索,它不会在那里很明显地找到,错误也是如此

那么,我如何停止针对版本1库的链接,比如强制避免加载它

上下文是使用

const EGLint context_attribs[] = {
        EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE
};
.
.
.
context = eglCreateContext(display, config, NULL, context_attribs);

什么电话失败了?看起来您正在使用模拟器;你在真正的设备上试过吗?是否在模拟器中启用了GPU加速?
glCreateShader()、glShaderSource()、glGetShaderiv()
和所有类似的2.0调用都失败。也在真实设备上试用过,它会出现黑屏。是的,GPU加速在emulator中启用,我的GPU是Radeon 6770M,它支持OpenGL 4.1,所以它支持着色器,所以它必须支持ES2.0。顺便问一下,这些库位于哪里(.so文件),因为您看到,问题是版本1库正在加载,所以调用被跟踪到那里(后期绑定指向那里)所以,如果我以某种方式强制版本1库不加载,问题就会得到解决。。(世界上最可怕的事情是删除版本1。所以,它在PC上的什么地方,找不到它…)两个库都可以加载。调用将根据EGL上下文的配置方式进行路由。您可以演示如何配置EGL吗?特别是,在调用
eglCreateContext
时,应将
EGL\u CONTEXT\u CLIENT\u版本设置为2。