GStreamer Android教程构建失败

问题描述 投票:1回答:1

尝试在Windows上运行GStreamer Android Tutorials时,我遇到了很多问题。我是Android NDK的新手,所以这可能是一个非常简单的问题,但我无法弄清楚如何解决它。

当我尝试构建项目时,这些是构建错误消息

构建命令失败。

执行进程D时出错:\ gstreamer \ android-ndk-r19b-windows-x86_64 \ android-ndk-r19b \ ndk-build.cmd带参数{NDK_PROJECT_PATH = null APP_BUILD_SCRIPT = C:\ xxx \ xxx \ gst-docs-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 / examples / tutorials / android / android-tutorial-1 / build / intermediates / ndkBuild / release / obj NDK_LIBS_OUT = C:\ xxx \ xxx \ gst-docs-master \ examples \ tutorials \ android \ android-tutorial-1 \ build \ intermediates \ ndkBuild \ release \ lib NDK_APPLICATION_MK = jni / Application.mk GSTREAMER_JAVA_SRC_DIR = 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)

否则ifdef SYSROOT_INC $(调用assert-defined,SYSROOT_LINK)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

我认为问题是关于错误消息中提到的SYS_ROOT,但我不知道“SYS_ROOT”的含义或“NDK_PROJECT_PATH”是什么。

我已经将gstAndroidRoot添加到gradle.properties中,因此构建它时不会有问题。

java android android-ndk gstreamer
1个回答
-1
投票

我有同样的问题,原因是D:/gstreamer/gstreamer-1.0-android-universal-1.15.1/ {Arch你正在使用} /share/gst-android/ndk-build/gstreamer-1.0.mk是在第168行调用未定义的SYSROOT_LINK,所以我评论了该行。

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)出于某种原因,所以也许这不是一个合适的解决方案,但它的确有效。

© www.soinside.com 2019 - 2024. All rights reserved.