我想在带有gradle 4.10.1的gradle 4.10.1的Android Studio 3.3上构建GStreamer 1.14.1,但没有带有armeabi-v7a架构的android API 27。这是我尝试构建时遇到的错误:
Build command failed.
Error while executing process /home/folavarria/Android/Sdk/ndk-bundle/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/folavarria/Projects/AndroidStudioProjects/StreamingApp/app/jni/Android.mk NDK_APPLICATION_MK=/home/folavarria/Projects/AndroidStudioProjects/StreamingApp/app/jni/Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-16 NDK_OUT=/home/folavarria/Projects/AndroidStudioProjects/StreamingApp/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/home/folavarria/Projects/AndroidStudioProjects/StreamingApp/app/build/intermediates/ndkBuild/debug/lib NDK_APPLICATION_MK=jni/Application.mk GSTREAMER_JAVA_SRC_DIR=src GSTREAMER_ROOT_ANDROID=/home/folavarria/Android/Sdk/gstreamer/1.14.1 GSTREAMER_ASSETS_DIR=src/assets /home/folavarria/Projects/AndroidStudioProjects/StreamingApp/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libtutorial-2.so}
GStreamer : [GEN] => gst-build-armeabi-v7a/gstreamer_android.c
GStreamer : [COMPILE] => gst-build-armeabi-v7a/gstreamer_android.c
clang: error: argument unused during compilation: '-mfpu=vfpv3-d16' [-Werror,-Wunused-command-line-argument]
make: *** [gst-build-armeabi-v7a/gstreamer_android.o] Error 1
我试图在Android.mk和build.gradle上使用“ -Wno-unused-command-line-argument”和“ -Wno-error”标志来使参数未使用的警告静音,但无法正常工作。
还尝试了其他GStreamer版本,但出现了相同的错误。甚至尝试过使用不同的ndk版本(r15c,r16b和r19b),但是此错误一直出现。
编辑:我尝试使用Cerbero,但与我的操作系统不兼容,所以我下载了最新的GStreamer版本,该错误消失了,现在我在Android.mk上遇到了另一个错误:
SYSROOT_LINK not defined
此问题通过注释Gstreamer-SDK / armv7 / share / gst-android / ndk-build / GStreamer.mk上的一行来解决,该行正在调用168上未定义的SYSROOT_LINK变量。
ifdef SYSROOT
SYSROOT_GST_INC := $(SYSROOT)
SYSROOT_GST_LINK := $(SYSROOT)
else
ifdef SYSROOT_INC
# $(call assert-defined, SYSROOT_LINK) <--- HERE!!!
ifdef SYSROOT_LINK
SYSROOT_GST_INC := $(SYSROOT_INC)
SYSROOT_GST_LINK := $(SYSROOT_LINK)
endif
else
SYSROOT_GST_INC := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-$(TARGET_ARCH)
SYSROOT_GST_LINK := $(SYSROOT_GST_INC)
endif
endif
现在它可以正常工作,但是似乎这不是解决此错误的正确方法。