Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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:

 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) 

  • Androide ndk multitouch
  • Cómo convertir char a jstring en JNI?
  • ¿Qué dispositivos Android admiten jni?
  • Biblioteca binaria preconfigurada nativa en Android Studio con el complemento experimental de Gradle
  • Android ndk: Problema para la llamada del método Java desde c ++ con jni
  • Cómo especificar el archivo de encabezado c en el archivo android.mk
  • Cómo llamar a Java API de subproceso de C ++ de NDK?
  • Android NDK - NativeActivity vs JNI lib
  • 3 Solutions collect form web for “La compilación con NDK da error para los archivos de encabezado incluidos correctamente”

    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
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.