我尝试使用Android网站上的教程在Windows上使用Android Studio构建GStreamer应用,但正如其他问题中已经提到的那样,这些教程不是最新的,也不适用于Android工作室。我已经按照 Eduardo Fernando 提出的教程: Gstreamer examples in Android Studio,但由于我无法解决未找到的jni.h文件问题,因此无法构建。
> Build command failed.
Error while executing process
C:\Users\spomerleau\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd with
arguments {NDK_PROJECT_PATH=null
APP_BUILD_SCRIPT=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\android-tutorial-5\app\src\main\jni\Android.mk NDK_APPLICATION_MK=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\android-tutorial-5\app\src\main\jni\Application.mk APP_ABI=arm64-v8a NDK_ALL_ABIS=arm64-v8a NDK_DEBUG=1 APP_PLATFORM=android-21 NDK_OUT=C:/Users/spomerleau/Desktop/Android_GSTreamer/Premade_Test_tut5/android-tutorial-5/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\android-tutorial-5\app\build\intermediates\ndkBuild\debug\lib C:/Users/spomerleau/Desktop/Android_GSTreamer/Premade_Test_tut5/android-tutorial-5/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libtutorial-5.so}
GStreamer : [GEN] => gst-build-arm64-v8a/gstreamer_android.c
GStreamer : [COMPILE] => gst-build-arm64-v8a/gstreamer_android.c
gst-build-arm64-v8a/gstreamer_android.c:1:10: fatal error: 'jni.h' file not found
#include <jni.h>
^~~~~~~
1 error generated.
make: *** [gst-build-arm64-v8a/gstreamer_android.o] Error 1
我执行了javah命令,但生成的.h也找不到#include。
我尝试了ndk-build命令,但它会停止说缺少jni.h文件。
有关如何将jni.h文件链接到项目的任何建议?
答案 0 :(得分:6)
这可能是Android NDK中r16更改的问题,这些更改由以下commit上游修复
问题是NDK将头文件移动到unified structure,从而打破了旧位置中任何期望标题的用户。
答案 1 :(得分:2)
这是因为Android Studio更新/安装到NDK_r16,不赞成使用GCC支持。尝试恢复为NDK_r15c。
从https://developer.android.com/ndk/downloads/older_releases.html下载r15c,然后将应用的NDK位置指向解压缩的文件夹。
答案 2 :(得分:0)
jni.h是头文件,已存在于android ndk包中。如果它不存在,您可以重新安装软件包,也可以在Web上搜索可以轻松获取的源文件,并将该文件放入编译器期望的位置