无法为 Android 教程构建 GStreamer

2023-11-22

我在尝试构建 GStreamer Android 教程时遇到了许多问题。

我的环境是:

  • Mac OS X 7
  • Android SDK 版本 17
  • 安卓NDK 8d

我能够在 Eclipse 中和命令行中构建和运行 NDK 示例。

我已经下载了http://cdn.gstreamer.com/android/arm/gstreamer-sdk-android-arm-debug-2012.11.tar.bz2并将 GSTREAMER_SDK_ROOT_ANDROID 环境变量添加到我的 .bash_profile 中。

当我尝试通过 Eclipse 构建 android-tutorial-1 时,出现以下错误:

12:12:05 **** Incremental Build of configuration Default for project Tutorial1 ****
/apps/tools/android-ndk-r8d/ndk-build all 
jni/Android.mk:13: *** GSTREAMER_SDK_ROOT_ANDROID is not defined!.  Stop.

12:12:05 Build Finished (took 104ms)

我尝试将 GSTREAMER SDK_ROOT ANDROID 添加到 Eclipse 中的 C++ 构建变量中,但没有什么区别。

当我尝试通过命令行构建时,出现以下错误:

/bin/sh: pkg-config: command not found
/bin/sh: pkg-config: command not found
/bin/sh: pkg-config: command not found
GStreamer      : [GEN] => gst-build/gstreamer_android.c
GStreamer      : [COMPILE] => gst-build/gstreamer_android.c
gst-build/gstreamer_android.c:2:21: fatal error: gst/gst.h: No such file or directory
compilation terminated.
make: *** [gst-build/gstreamer_android.o] Error 1

我不明白的是 gst/gst.h 无法解析?


这里你面临两个问题

1.GSTREAMER_SDK_ROOT_ANDROID未定义

通过set就可以轻松解决GSTREAMER_SDK_ROOT_ANDROID环境变量(在 Eclipse 或Android.mk文件)在我的例子中我已经像这样指定了这个变量

GSTREAMER_VERSION   := 1.4.1
GSTREAMER_SDK_ROOT  := /Volumes/Data/Developers/Library/gstreamer-1.0-sdk-android/$(TARGET_ARCH_ABI)-$(APP_OPTIM)-$(GSTREAMER_VERSION)
  1. TARGET_ARCH_ABI- 预定义变量(在我的例子中armeabi-v7a)
  2. APP_OPTIM- 预定义变量release or debug

在你的情况下GSTREAMER_SDK_ROOT当然会有所不同,但是如果您需要支持多个架构,那么使用预定义的变量会有很大帮助

2. your pkg-confing不在PATH

正如您可能会看到的,默认情况下使用sh

/bin/sh: pkg-config: command not found
/bin/sh: pkg-config: command not found
/bin/sh: pkg-config: command not found

它找不到pkg-config因为最初PATH=/usr/bin:/bin:/usr/sbin:/sbin。如果您安装时pkg-config by brew在 OSX 上它已被放置到/usr/local/bin

bash-3.2$ which pkg-config
/usr/local/bin/pkg-config

To fix PATH你可以指定自己的shell

SHELL := PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin /bin/bash

这不是完美的解决方案,但它有效

针对 Gradle 用户的更新

Since 2.2.0-alpha3gradle android 插件支持像这样的外部构建系统(将其添加到build.gradle inside android定义)

android { 
    ...
    externalNativeBuild {
        ndkBuild {
            path "${projectDir.absolutePath}/src/main/jni/Android.mk"
        }
    }
}

不要忘记清理jni.srcDirs因为坏插件会首先启动,以进行清理jni.srcDirs在运行时添加

android { 
    ...
    task disableDefaultNdkBuild << {
        android.sourceSets.main.jni.srcDirs = []
        android.sourceSets.main.jniLibs.srcDir 'src/main/libs'
    }

    preBuild.dependsOn disableDefaultNdkBuild
}

官方指南现已推出https://gstreamer.freedesktop.org/documentation/tutorials/android/link-against-gstreamer.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法为 Android 教程构建 GStreamer 的相关文章

随机推荐

  • 在 Java 的 if 块中使用逻辑运算符或按位运算符有区别吗?

    应执行以下两个 if 块的内容 if booleanFunction otherBooleanFunction if booleanFunction otherBooleanFunction 那么使用有什么区别 或使用 注意 我对此进行了研
  • 如何在 iOS 10 中处理 UserNotifications 操作

    所以我可以像这样安排通知 iOS 10 Notification if available iOS 10 0 var displayDate String let dateFormatter DateFormatter dateFormat
  • Java 正则表达式不区分大小写不起作用

    我正在尝试使用下面的程序使用正则表达式删除字符串中的一些单词 它可以正确删除 但只考虑大小写 如何使其不区分大小写 我保留了 1 in replaceAll方法但是没有用 package com test java public class
  • 如何从 Google Glass 中的卡片开始意图

    我试过这个应用程序 Crystal Shopper https crystalshopper herokuapp com 这似乎能够从卡启动应用程序 正如您在此屏幕截图中看到的 https crystalshopper herokuapp
  • php:file_get_contents编码问题

    我的任务很简单 向translate google com 发出发布请求并获取翻译 在下面的示例中 我使用 hello 一词翻译成俄语 header Content Type text plain charset utf 8 optiona
  • 在不使用 Ghostscript 且仅使用 ImageMagik 的情况下压缩文本较多的 PDF 会导致文本模糊

    我正在尝试使用代码压缩校报的 PDF 版本 并创建了以下完美运行的脚本 gs dNOPAUSE dBATCH sDEVICE pdfwrite dCompatibilityLevel 1 4 dPDFSETTINGS ebook sOutp
  • 在目标 c 中将数字转换为单词

    我需要写下这样的数字 1 gt 耶克 123 gt 我的朋友 1 123 gt 耶克 赫扎尔 耶克萨德 比斯特 奥塞 3 002 001 gt Se milion o do hezar o yek 我是目标 c 的初学者 我用 c 编写它
  • java for 循环不工作

    我希望这不是一个愚蠢的问题 但我已经查找了我能找到的每个示例 但似乎我的代码仍然正确 但它仍然无法正常工作 我输入一个数字 然后它会转到下一个数字一行代码而不是循环 我用它来用用户输入的数字填充数组 我很感激任何帮助 谢谢 for i 0
  • 如何使用 talend 和 sql server 更快地加载数据

    我使用 Talend 将数据加载到 sql server 数据库中 看来我的工作最薄弱的地方不是数据处理 而是数据库中的有效负载 其速度不超过 17 行 秒 有趣的是 我可以同时启动 5 个作业 它们都将以 17 行 秒的速度加载 什么可以
  • Double.ToString() 何时返回科学计数形式的值?

    我认为它与前导零或尾随零的数量有关 但我在 msdn 中找不到任何可以给我具体答案的内容 在什么时候Double ToString CultureInfo InvariantCulture 开始以科学记数法返回值 从文档中Double To
  • 使用 IOS 8.3 的 Safari 上的 Angular ng-click 问题

    这是一个奇怪的问题 很难产生和探索 在使用 Angular 构建 Web 应用程序时 我的老板发现应用程序上的所有按钮都使用ng click指令不起作用 现在 这个问题只发生在iphone 6 with IOS 8 3 and using
  • 使用nodejs gcloud api移动/重命名Google Cloud Storage中的文件夹

    我正在尝试使用 gcloud api 重命名或移动 google 云存储中的文件夹 类似的问题解释了如何删除文件夹 使用nodejs gcloud api删除Google Cloud Storage中的文件夹 但是如何重命名文件夹呢 或转向
  • 使用C#从USB读取数据?

    我不想读取串行端口或其他可能的简单快捷方式 我想知道如何使用 C 读取笔记本电脑中的 USB 端口 无论您是否可以推荐一个网站或解释一下流程的流程 我将非常感谢您的帮助 如果你想做 USB 开发 Jan Axelson 的 USB Comp
  • Combobox Cascading 需要更具体的cascadeFrom 选项

    我想使用 Kendo UI ComboBox 的 CascadeFrom 功能 但令我沮丧的是 该选项似乎只接受 ID 现在我无法使用该 ID 因为组合框是动态添加的 并且可能多次添加 从而导致多个控件具有相同的 ID 有谁知道如何将特定的
  • hprof 中“无引用”的对象

    我正在调查一个hprofVisualVM 中的文件 服务器运行 JDK 1 4 2 30 并具有 1 GB 堆 NewSize 为 200 Mb hprof 显示 56000 个实例占用了 71 的堆int 在 VisualVM 中查看时
  • 现在允许使用 Instagram API 上传视频吗?

    据 Instagram 报道文档 Instagram 仅允许 API 上传图像 JPG PNG 一款名为 Cinamatic 的新 iPhone 应用程序允许用户通过 Cinamatic 登录 Instagram 后将视频上传到 Insta
  • Android Studio w/gradle:包 r 不存在

    最终编辑 这是一个很长的问题 需要进行多次编辑 而且我不一定在每一步都做正确的事情 对于任何偶然发现这个问题并且在 Android Studio 中将项目转换为 gradle 时遇到困难的人 我建议检查一下这个存储库中提到的问题 16718
  • 如何让 Powermock 与 Dexmaker 配合使用

    我正在尝试合并动力模拟使用以下 build gradle 配置作为我的 Android 测试的依赖项 dependencies compile com android support appcompat v7 21 0 androidTes
  • `exec':字符串包含空字节(ArgumentError)

    cmd snv co rep username svn user password pxs puts cmd this code wotks and prints all vars values normally exec cmd xpto
  • 无法为 Android 教程构建 GStreamer

    我在尝试构建 GStreamer Android 教程时遇到了许多问题 我的环境是 Mac OS X 7 Android SDK 版本 17 安卓NDK 8d 我能够在 Eclipse 中和命令行中构建和运行 NDK 示例 我已经下载了ht