【问题标题】:Android Gstreamer SDK tutorial errorAndroid Gstreamer SDK 教程报错
【发布时间】:2016-11-28 11:50:41
【问题描述】:

我正在尝试测试 Android Gstreamer。 所以我安装并配置了路径SDK,得到了tutorial source,修改教程的Android.mk中的路径,并在android-tutorial-1/jni处进行ndk-build。 但我得到了

$ ndk-build
GStreamer      : [GEN] => gst-build-arm64-v8a/gstreamer_android.c
GStreamer      : [COMPILE] => gst-build-arm64-v8a/gstreamer_android.c
GStreamer      : [LINK] => gst-build-arm64-v8a/libgstreamer_android.so
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/gstreamer-1.0/static/libgstcoreelements.a(libgstcoreelements_la-gstelements.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gst.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstobject.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstallocator.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstbin.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstbuffer.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstbufferlist.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstbufferpool.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstbus.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstcaps.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstcapsfeatures.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstchildproxy.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstclock.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstclock-linreg.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstcontext.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstcontrolbinding.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstcontrolsource.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstdatetime.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstdebugutils.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstdevice.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstdevicemonitor.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libgstreamer-1.0.a(libgstreamer_1.0_la-gstdeviceprovider.o): incompatible target
...
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libglib-2.0.a(libglib_2_0_la-gstring.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libglib-2.0.a(libglib_2_0_la-gthread.o): incompatible target
/home/potato/Android/NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.gold: error: /home/potato/Android/GST/lib/libglib-2.0.a(libglib_2_0_la-gutf8.o): incompatible target
gst-build-arm64-v8a/gstreamer_android.c:27: error: undefined reference to 'gst_plugin_coreelements_register'
gst-build-arm64-v8a/gstreamer_android.c:70: error: undefined reference to 'g_utf8_get_char_validated'
gst-build-arm64-v8a/gstreamer_android.c:79: error: undefined reference to 'g_strdup_printf'
gst-build-arm64-v8a/gstreamer_android.c:80: error: undefined reference to 'g_string_erase'
gst-build-arm64-v8a/gstreamer_android.c:81: error: undefined reference to 'g_string_insert'
gst-build-arm64-v8a/gstreamer_android.c:85: error: undefined reference to 'g_free'
gst-build-arm64-v8a/gstreamer_android.c:103: error: undefined reference to 'g_strdup_printf'
...
gst-build-arm64-v8a/gstreamer_android.c:540: error: undefined reference to 'g_module_open'
gst-build-arm64-v8a/gstreamer_android.c:544: error: undefined reference to 'g_module_symbol'
gst-build-arm64-v8a/gstreamer_android.c:548: error: undefined reference to 'g_module_close'
collect2: error: ld returned 1 exit status
/home/potato/Android/GST/share/gst-android/ndk-build/gstreamer-1.0.mk:229: recipe for target 'buildsharedlibrary_arm64-v8a' failed
make: *** [buildsharedlibrary_arm64-v8a] Error 1

PLUS

当我使用 arm-1.9.1、arm64-1.9.1 或 x86-1.9.1 时,我会收到相同的消息

Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:assembleDebug]
:app:ndkClean
src/main/jni/Android.mk:23: *** Target arch ABI not supported.  Stop.
Error:Execution failed for task ':app:ndkClean'.
> Process 'command 'C:\Users\Jinwoo\AppData\Local\Android\NDK/ndk-build.cmd'' finished with non-zero exit value 2
Information:BUILD FAILED
Information:Total time: 4 mins 46.216 secs
Information:1 error
Information:0 warnings
Information:See complete output in console

x86_64-1.9.1

Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources, :app:assembleDebug]
:app:ndkClean
src/main/jni/Android.mk:35: C:\Users\Jinwoo/AppData/Local/Android/gstreamer-1.0-android-x86_64-1.9.1/share/gst-android/ndk-build//plugins.mk: No such file or directory
src/main/jni/Android.mk:39: C:\Users\Jinwoo/AppData/Local/Android/gstreamer-1.0-android-x86_64-1.9.1/share/gst-android/ndk-build//gstreamer-1.0.mk: No such file or directory
src/main/jni/Android.mk:35: C:\Users\Jinwoo/AppData/Local/Android/gstreamer-1.0-android-x86_64-1.9.1/share/gst-android/ndk-build//plugins.mk: No such file or directory
src/main/jni/Android.mk:39: C:\Users\Jinwoo/AppData/Local/Android/gstreamer-1.0-android-x86_64-1.9.1/share/gst-android/ndk-build//gstreamer-1.0.mk: No such file or directory
src/main/jni/Android.mk:23: *** Target arch ABI not supported.  Stop.
Error:Execution failed for task ':app:ndkClean'.
> Process 'command 'C:\Users\Jinwoo\AppData\Local\Android\NDK/ndk-build.cmd'' finished with non-zero exit value 2
Information:BUILD FAILED
Information:Total time: 3.126 secs
Information:1 error
Information:0 warnings
Information:See complete output in console

【问题讨论】:

    标签: android gstreamer


    【解决方案1】:

    您使用的那个教程实际上并不是来自 GStreamer,而是来自第三方,而且现在已经很老了。我无法让它与 Android Studio 一起工作,只有 Eclipse。如果您想使用最新的 Android GStreamer,我建议您查看this Github project

    它应该可以直接与 GStreamer SDK 1.8.0 或更高版本一起使用。您需要的唯一更改是在 build.gradle 文件中,在 getNdkCommandLine(ndkRoot, target) 方法中将 gstRoot 变量设置为 GStreamer SDK 的路径。

    【讨论】:

    • 谢谢你告诉我那个来源。我尝试使用该源,但实际上我不知道如何使用它......我用 Eclipse 导入它并修改布局文件夹中 main.xml 文件上的match_parent -> fill_parent。之后,将版本从 2.1 更改为 4.4.2,并加上<uses-sdk android:minSdkVersion="19" />。最后 src 文件夹中没有文件,我有一个 No Launcher activity found! The Launch will only sync the application package on the device! 错误。
    • 或者我应该使用 Android Studio 作为那个源??
    • 这些源代码是为 Android Studio 和 Gradle 构建系统制作的,Eclipse 不使用它们。您不应该再使用 Eclipse,而应该只使用 Android Studio。如果您需要使用现有项目,我建议将其迁移到 Android Studio,这将有助于解决未来的其他问题 :)
    • 我只需要在任何工具(Eclipse 或 Android Studio)上运行测试源。好吧..我尝试使用您链接的来源。但它看起来很奇怪,所以当我打开或导入它时我无法使用它。还有其他我应该知道的使用方法吗??
    • 下载我链接的完整源代码,并将其解压缩到某个地方。打开 Android Studio 并转到 File->Open,然后选择名为 'android' 的文件夹(在此文件夹内应该是一个 'app' 文件夹和一个 'gradle' 文件夹,以及一个名为 'build.gradle' 的文件)。然后点击确定,项目应该可以正常打开
    【解决方案2】:

    gstreamer-devel,你可能错过了android更新

    【讨论】:

    • 你能告诉我更多细节吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    相关资源
    最近更新 更多