我设法让Android Studio设置链接到jniLibs中的自定义库并使用它编译填充程序。但是,我无法弄清楚如何与EGL联系。
C ++ Shim
#include <jni.h>
#include <android/log.h>
#include <EGL/egl.h>
extern "C" {
// Code and stuff
} // End extern
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := faceblaster-engine
LOCAL_SRC_FILES := ../jniLibs/$(TARGET_ARCH_ABI)/libfaceblaster-engine.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := faceblaster
LOCAL_SRC_FILES := gl-tests.cpp
LOCAL_SHARED_LIBRARIES := faceblaster-engine libEGL
include $(BUILD_SHARED_LIBRARY)
我收到以下错误:
fatal error: EGL/egl.h: No such file or directory
我的猜测是假设EGL / egl.h也应该在app/src/main/jni
中,并抛出错误,因为它显然不在该目录中。
然而,它确实找到了android / log.h,所以它必须知道它们在哪里,但是当它抓住EGL的时候就失败了。有没有人想过为什么EGL没有进入?
提前感谢您的帮助!
答案 0 :(得分:1)
事实证明,你需要在与Android.mk相同的目录中使用名为Application.mk的东西来定义目标和东西。我刚刚将其添加到该文件中,一切都按预期工作:
APP_ABI := armeabi
APP_PLATFORM := android-15