Gstreamer tutorials 引用SDK 【android 应用】

Gstreamer tutorials

下载gst-docs

链接:git clone git://anongit.freedesktop.org/gstreamer/gst-docs
下载的教程是 eclipse 下的项目,所以需要导入android studio 使用

ubuntu 安装更新 android studio

因为 gstramer 文档很老,没有详细描述android studio 如何引用,这让不熟悉android studio 的人,使用起来全是异常
安装 android studio 确保 sdk 和 ndk 已经安装,并且可以编译执行

android studio 导入教程1

目录在 gst-docs/examples/tutorials/android-tutorial-1

  1. 点击 import project
    AS1

  2. 选择 android-tutorial-1
    AS2

  3. 这里选择不更新
    AS3

  4. 点击 local.properities 发现 gradle 编译和同步失败,然后点击try again
  5. 消息框 弹出 报错如下
    AS4
    点击fix gradle wrapper and re-import …

  6. 然后出现缺少sdk 点击 install missing plantform… 按照提示安装
    AS5

  7. 点击 androidtutorial1 右键 选择 Link C++ project with gradle

  8. build system 选择 ndk-build 不选择cmake ,选择 project path 选择 项目的Android.mk
    AS8
  9. 会出现 安装nsk 和同步项目错误 说明 ndk 还没有配置
    配置ndk jdk,点击 androidtutorial1 右键 open Module Settings ,然后选择 左侧 sdk location
    在Android NDK location 中选择 ~/cerbero/目录下的ndk

  10. 然后在ndk 编译的时候,发现 GSTREAMER_ROOT_ANDROID 找不到
    AS10
    进入 jni 目录 编辑 Android.mk 添加如下代码

include $(BUILD_SHARED_LIBRARY)

GSTREAMER_ROOT_ANDROID := ~/cerbero/dist # 此行为添加 GSTREAMER_ROOT_ANDROID路径

ifndef GSTREAMER_ROOT_ANDROID
  1. 出现找不到 arm 目录下的 gstreamer-1.0.mk 的错误,此时需要检查路径
    • 看到编译的arm64 在 ~/cerbero/目录下是android_arm64 ,所以修改 代码为
GSTREAMER_ROOT_ANDROID := ~/cerbero/dist
ifndef GSTREAMER_ROOT_ANDROID
$(error GSTREAMER_ROOT_ANDROID is not defined!)
endif

GSTREAMER_ROOT        := $(GSTREAMER_ROOT_ANDROID)/android_arm64  

# 其他的GSTREAMER_ROOT 路径指定都删除 
  • 还要修改 androidtutorial1 模块目录下的build.gradle
        ndk {
            moduleName "tutorial-1"
            abiFilters 'armeabi','armeabi-arm64' # 此处为添加 根据自己手机 cpu架构选 abi
        }

然后gradle编译通过

12 点击 make 的时候,出现 Error:(8, 33) error: cannot find symbol class GStreamer
进入目录按照要求拷贝到项目中来
AS12
删除Gstreamer@XXXXX@部分 影响编译

13 其他错误 ,当用高版本gradle 编译会报错,我这里使用gradle 是2.3.3

AS13

设置成这样 应该就可以了,遇到异常 再分析

猜你喜欢

转载自blog.csdn.net/engineer_james/article/details/79619612