Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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库项目中包含预构建的静态/共享NDK库_Android_C++_C_Android Ndk - Fatal编程技术网

Android 在另一个NDK库项目中包含预构建的静态/共享NDK库

Android 在另一个NDK库项目中包含预构建的静态/共享NDK库,android,c++,c,android-ndk,Android,C++,C,Android Ndk,所以我想做的是: < p>在C++中为NDK构建一个渲染插件(传递一个位图+ TrutuId,并渲染纹理上的位图)。这个很好用 将渲染插件添加到使用ffmpeg解码视频的C(用于NDK)项目中,视频的每一帧都会传递给渲染插件进行显示 我可以将渲染插件构建到C项目中,并将相关文件移动到Obj/local/或libs/目录中(我尝试了渲染器的静态和共享构建)。然而,我不能让它包含在实际的C代码中 目录如下所示: 当我尝试向代码添加#include时,它不会链接,说找不到文件或目录 jni文件夹中

所以我想做的是:

< p>在C++中为NDK构建一个渲染插件(传递一个位图+ TrutuId,并渲染纹理上的位图)。这个很好用

  • 将渲染插件添加到使用ffmpeg解码视频的C(用于NDK)项目中,视频的每一帧都会传递给渲染插件进行显示

  • 我可以将渲染插件构建到C项目中,并将相关文件移动到
    Obj/local/
    libs/
    目录中(我尝试了渲染器的静态和共享构建)。然而,我不能让它包含在实际的C代码中

    目录如下所示:

    当我尝试向代码添加
    #include
    时,它不会链接,说找不到
    文件或目录

    jni
    文件夹中的My
    Android.mk

    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)
    
    以及
    prebuild
    文件夹中的
    Android.mk
    ,该插件位于:

    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)
    

    这似乎与库的放置位置有关,在将它们移动到与ffmpeg LIB相同的文件夹(并更新makefiles)后,include现在工作正常。

    “但我的库没有.h文件”。那你打算怎么用呢?你有其他地方的功能原型吗?如果是这样的话,为什么不把它们放在这个库的标题中呢?无论如何,你不包括
    a
    .a
    。所以
    文件-你可以在你的makefile中链接它们。我对整个NDK的事情有点不知所措。我不知道函数原型需要放在一个.h文件中。有没有好的资源来找出如何正确地做到这一点?NDK文档有点“轻量级”。您不需要将它们放在头文件中。但这是做事的典型方式。这并不特定于Android或NDK。渲染器插件只有几个外部方法。如果我写了一个
    .h
    文件,里面有函数原型,那就足够了吗?