2017-10-15 173 views
0

我想从官方网站运行gstreamer的android教程。第一个教程工作正常,因为它不使用任何插件。但我无法让其余的人工作。在第二个教程中,问题是其中一个插件未找到:autoaudiosink。
Android Studio打开一个文件“/home/borlea/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/aarch64-linux-android/bin/ld.gold”,但是它没有在任何东西理解,我也得到这些错误:
错误:错误:无法找到-lgstautoaudiosink
错误:错误:未定义的引用“gst_plugin_autoaudiosink_register”
错误:错误:连接命令,退出代码失败1(使用-v看看调用)
错误:未定义的引用'gst_plugin_autoaudiosink_register'

这是我Android.mk文件

LOCAL_PATH := $(call my-dir) 

    include $(CLEAR_VARS) 

    LOCAL_MODULE := tutorial-2 
    LOCAL_SRC_FILES := tutorial-2.c 
    LOCAL_SHARED_LIBRARIES := gstreamer_android 
    LOCAL_LDLIBS := -llog 
    include $(BUILD_SHARED_LIBRARY) 

    GSTREAMER_ROOT_ANDROID := /home/borlea/Downloads/gstreamer-1.0-android-universal-1.12.3 

    ifndef GSTREAMER_ROOT_ANDROID 
    $(error GSTREAMER_ROOT_ANDROID is not defined!) 
    endif 

    ifeq ($(TARGET_ARCH_ABI),armeabi) 
    GSTREAMER_ROOT  := $(GSTREAMER_ROOT_ANDROID)/arm 
    else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) 
    GSTREAMER_ROOT  := $(GSTREAMER_ROOT_ANDROID)/armv7 
    else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) 
    GSTREAMER_ROOT  := $(GSTREAMER_ROOT_ANDROID)/arm64 
    else ifeq ($(TARGET_ARCH_ABI),x86) 
    GSTREAMER_ROOT  := $(GSTREAMER_ROOT_ANDROID)/x86 
    else ifeq ($(TARGET_ARCH_ABI),x86_64) 
    GSTREAMER_ROOT  := $(GSTREAMER_ROOT_ANDROID)/x86_64 
    else 
    $(error Target arch ABI not supported: $(TARGET_ARCH_ABI)) 
    endif 

    GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/ 
    include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk 
    GSTREAMER_PLUGINS   := audiotestsrc audioconvert audioresample autoaudiosink 
    include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk 

我做错了什么?生成错误的

打印屏幕:

This is a print screen of the error build error I get

在此先感谢。

回答

1

我在尝试教程时遇到了同样的错误,如果我没有记错,问题在于Android Studio和Android.mk之间的链接。为了解决这个问题,你必须:
1.右键单击“应用”,在左侧导航标签
2.点击“链接C++项目与摇篮”
3.在新窗口:
- 改变“建设系统“从”CMake“到”ndk-build“
- 点击”...“并浏览到Android.mk的位置”/AndroidStudioProjects/android-studio-5/app/src/jni/Android.mk“
- 点击确定

希望能解决这个错误,但会出现另一个错误。这个教程的主要问题是它是用于eclipse的。因此,在研究了NDK,makefile.mk和GStreamer以及Android Studio的工作之后,我最终逐步了解了如何在Android Studio上运行所有这些教程。
我给出的步骤运行的答案的链接是:Gstreamer examples in Android Studio
在那里你会找到图片(这anwser是教程的第二步)。

+0

感谢您的回答!我已经看到你在这个问题上给出的另一个答案。我遵循你在那里说的,并解决了一些错误,但我仍然得到了问题中提到的错误。我也尝试从GitLab运行你的项目,但我得到了另一个错误。据我所知,你是唯一一个在Android Studio中使用gstreamer发布项目的人。我现在不在家,我不记得我从你的项目中得到的错误。但是如果你能帮助我,我可能会感激不尽,也许我可以在你的电脑上工作......。再次感谢@Eduardo Fernando –

+1

我很高兴提供帮助。只是让我知道你试图从git运行我的项目的错误,我可以尝试解决它也为你工作。这对于更新我的教程也是很好的。 @AndreiDanielBorlea –

+0

我设法让你的项目在我的电脑上工作,这是一个来自android studio的问题,本教程(https://www.youtube.com/watch?v=1QkYd_QjEWc)帮助我解决了这个问题。但仍然有我的问题中描述的错误,与教程2和3有关。没有找到“autoaudiosink”插件,我不知道为什么... –