2015-06-23 2 views
0

Так что им пытается сделать, это:Включая предварительно построенный статический/общего NDK ОМТА внутри другого проекта Lib NDK

  1. Построить плагин рендеринга в C++ для НКА (передать его растровый + textureID и его отображает растровое изображение на текстуре). Это прекрасно работает.

  2. Добавить плагин рендеринга в проект C (для NDK), который использует ffmpeg для декодирования видео, каждый кадр видео передается в отображаемый плагин.

я могу получить рендеринг плагин для создания в проект C, и соответствующие файлы будут перемещены в Obj/local/ или libs/ каталог (я пробовал как статический, так и совместно строит для визуализатора). Однако я не могу заставить его включить в настоящий код C.

каталог выглядит следующим образом:

Directory Structure

Это обыкновение ссылка, когда я пытаюсь добавить #include <renderplugin.h> в мой код, говоря file or directory could not be found

Мои Android.mk в jni папке:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := NativeMediaPlayer 
LOCAL_SRC_FILES := NativeMediaPlayer.c 
LOCAL_LDLIBS := -llog -lz -lGLESv2 
LOCAL_SHARED_LIBRARIES := libavformat libavcodec libavutil liblog libswscale NativeRenderPlugin 

include $(BUILD_SHARED_LIBRARY) 
#ffmpeg 
$(call import-add-path, ../) 
$(call import-module, NativeMediaPlayer/external) 
#render plugin 
$(call import-add-path, jni) 
$(call import-module, prebuilt) 

И Android.mk в prebuilt папки, в которой плагин:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_MODULE := libNativeRenderPlugin 
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/lib/libNativeRenderPlugin.so 
LOCAL_EXPORT_C_INCLUDES += $(TARGET_ARCH_ABI)/include 
include $(PREBUILT_SHARED_LIBRARY) 
+0

_ "Но в моей библиотеке нет файла .h". Тогда как вы планируете его использовать? У вас есть прототипы функций где-то еще? Если да, почему бы не поместить их в заголовок для этой библиотеки? – Michael

+0

В любом случае вы не '# include'' .a' или' .so'file - вы ссылаетесь на них в своем make-файле. – Michael

+0

Я немного нуб в целом NDK. Я не знал, что прототипы функций должны быть помещены в файл .h. Есть ли хороший ресурс для выяснения того, как это сделать правильно? Документы NDK немного «легки». – sh3rifme

ответ

0

Похоже, что это было что-то делать с тем, где библиотека была помещена после перемещения их в ту же папку, что и FFmpeg LIBS (и обновления мейкфайлы) включаемая работают правильно сейчас.