Я сталкиваюсь с рядом проблем при попытке запустить GStreamer Android Tutorials для Windows. Я новичок в Android NDK, так что это может быть очень простой проблемой, но я не мог понять, как ее решить.
Это сообщения об ошибках сборки, когда я пытаюсь собрать проект
Команда сборки не удалась.
Ошибка при выполнении процесса D:\gstreamer\android-ndk-r19b-windows-x86_64\android-ndk-r19b\ndk -B uild.cmd с аргументами {NDK_PROJECT_PATH = null APP_BUILD_SCRIPT = C:\xxx\xxx\xxx gsst -master\examples\tutorials\android\android-tutorial-1\jni\Android.mk NDK_APPLICATION_MK = C:\xxx\xxx\gst-docs-master\examples\tutorials\android\android-tutorial-1\jni\Application.mk APP_ABI = armeabi-v7a NDK_ALL_ABIS = armeabi-v7a NDK_DEBUG = 0 APP_PLATFORM = android-16 NDK_OUT = C: /xxx/xxx/gst-docs-master/примеры/учебные пособия /android/промежуточные курсы 1/ndkBuild/release/obj NDK_LIBS_OUT = C:\xxx\xxx\gst-docs-master\examples\tutorials\android\android-tutorial-1\build\промежуточные звенья \ndkBuild\release\lib NDK_APPLICATION_MK = jni/Application.mkD_JR_SR_SR_SR_RID = src GSTREAMER_ROOT_ANDROID = D: /gstreamer/gstreamer-1.0-android-universal-1.15.1 GSTREAMER_ASSETS_DIR = src/assets APP_SHORT_COMMANDS = false LOCAL_SHORT_COMMANDS = false -B -n
process_begin: CreateProcess (NULL, "",...) не выполнен.
*** Android NDK: ошибка подтверждения: SYSROOT_LINK не определено. Стоп. Открыть файл
Когда я щелкнул "Открыть файл", он отправил меня в файл gstreamer-1.0.mk и строки ниже.
ifdef SYSROOT SYSROOT_GST_INC: = $ (SYSROOT) SYSROOT_GST_LINK: = $ (SYSROOT)
else ifdef SYSROOT_INC $ (вызов определен как assert, SYSROOT_LINK) ifdef SYSROOT_LINK SYSROOT_GST_INC: = $ (SYSROOT_INC) SYSROOT_GST_LINK: = $ (SYSROOT_LINK) endif ($) ($) TGTF_RF_RF_RF_R_F_D_WRT_F_D_T_F_T_F_T_F_L_K_T_T_T_T_T_T_T_F_T_T_T_F_L_T_K_T____T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_T_KT_G SYSROOT_GST_LINK: = $ (SYSROOT_GST_INC) endif endif
Я думаю, что проблема в SYS_ROOT, как упомянуто в сообщении об ошибке, но я не знаю, что означает "SYS_ROOT" или "NDK_PROJECT_PATH".
Я добавил gstAndroidRoot в gradle.properties, поэтому при сборке это не будет проблемой.
У меня была та же проблема, причина в том, что D: /gstreamer/gstreamer-1.0-android-universal-1.15.1/{используемая вами арка}/share/gst-android/ndk-build/gstreamer-1.0.mk вызов SYSROOT_LINK, который не определен в строке 168, поэтому я прокомментировал эту строку.
ifdef SYSROOT
SYSROOT_GST_INC := $(SYSROOT)
SYSROOT_GST_LINK := $(SYSROOT)
else
ifdef SYSROOT_INC
# $(call assert-defined, SYSROOT_LINK) <-- COMMENT THIS!
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
Вероятно, $(call assert-defined, SYSROOT_LINK)
есть по какой-то причине, поэтому, возможно, это неправильное решение, но оно работает.