La compilación con NDK da error para los archivos de encabezado incluidos correctamente
Mi app.cpp:
#include "app.h" #include <EGL/egl.h> #include <EGL/eglext.h> void Java_com_geek_hello_FilterStack_nativeEglSetFenceAndWait(JNIEnv* env, jobject thiz) { EGLDisplay display = eglGetCurrentDisplay(); // Create a egl fence and wait for egl to return it. // Additional reference on egl fence sync can be found in: // http://www.khronos.org/registry/vg/extensions/KHR/EGL_KHR_fence_sync.txt EGLSyncKHR fence = eglCreateSyncKHR(display, EGL_SYNC_FENCE_KHR, NULL); if (fence == EGL_NO_SYNC_KHR) { return; } ...
Cuando ejecuto ndk-build, falla al encontrar métodos presentes en egl.h y .so no se crea. Aquí está el registro:
- ¿Cómo obtener la identificación del dispositivo con JNI en Android?
- Env-> FindClass función devuelve null
- Dalvik está buscando el archivo .so con extensión '.0' - ¿por qué?
- Android: Necesidad de crear un objeto Preferencias compartidas en c ++ NDK y almacenar algún valor booleano
- Es una pérdida de una sola vez de referencia a la memoria nativa asignada por una aplicación Android un gran negocio?
app.cpp:31:72: error: 'eglCreateSyncKHR' was not declared in this scope
Seguido por todos los métodos KHR que pertenecen a
Aquí tienes Android.mk
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) #LOCAL_CFLAGS += -DEGL_EGLEXT_PROTOTYPES LOCAL_CFLAGS = -Wno-psabi LOCAL_SRC_FILES := app.cpp #LOCAL_SHARED_LIBRARIES := libcutils libEGL LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libapp LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2 include $(BUILD_SHARED_LIBRARY)
- Cómo obtener un algoritmo de Hashing de archivo rápido para archivos grandes en un dispositivo móvil
- Pasar una matriz de Mats a código nativo
- Cómo incluir bibliotecas compartidas precompiladas en apk con eclipse
- Llamar a DeleteLocalRef en la interfaz nativa de java
- Convierta C.jstring a cadena nativa en Go
- ¿Cuáles son las consecuencias si intentamos conectar un hilo nativo permanentemente a la DVM (JVM)?
- ¿Cómo puedo capturar SIGSEGV (error de segmentación) y obtener un seguimiento de pila bajo JNI en Android?
- Android JNI: GetObjectClass se bloquea con SIGSEGV (no es una referencia JNI válida)
Usted necesita agregar:
#define EGL_EGLEXT_PROTOTYPES
Antes de su #include
líneas (bien, específicamente antes de incluir EGL/eglext.h
).
También (y parece que ya lo estás haciendo), necesitas construir contra al menos API 14, ya que es el primer nivel de API que expone esta función en la API pública.
EDIT: o simplemente descomente la línea de su Android.mk que dice:
#LOCAL_CFLAGS += -DEGL_EGLEXT_PROTOTYPES
Intente seguir todos los pasos de:
http://es.wikibooks.org/wiki/OpenGL_Programming/Android_GLUT_Wrapper
Desde el registro que proporcionó, la compilación no puede encontrar la biblioteca EGL, así que creo que necesita la línea
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2
En tu Android.mk. Y asegúrese de que su Application.mk incluye:
APP_STL := gnustl_static APP_PLATFORM := android-9
Creo que debe seguir estos pasos para más pasos de comprensión
Y antes de hacer bulid pls hacer amargo
- Proyecto camino hasta jni folde> y ndk camino hasta ndk-build ex D: \ New_Wok_2 \ Firstndk \ jni> c: \ android-ndk-r8 \ ndk-construir y limpiar su proyecto
- Compras múltiples en la aplicación de Android
- Javascript backbutton evento oyente anula el dispositivo Android botón de nuevo