您的位置:首页 > 移动开发 > Android开发

Gstreamer tutorials 引用SDK 【android 应用】

2018-03-19 23:43 543 查看

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

点击 import project



选择 android-tutorial-1



这里选择不更新



点击 local.properities 发现 gradle 编译和同步失败,然后点击try again

消息框 弹出 报错如下



点击fix gradle wrapper and re-import …

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



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

build system 选择 ndk-build 不选择cmake ,选择 project path 选择 项目的Android.mk



会出现 安装nsk 和同步项目错误 说明 ndk 还没有配置

配置ndk jdk,点击 androidtutorial1 右键 open Module Settings ,然后选择 左侧 sdk location

在Android NDK location 中选择 ~/cerbero/目录下的ndk

然后在ndk 编译的时候,发现 GSTREAMER_ROOT_ANDROID 找不到



进入 jni 目录 编辑 Android.mk 添加如下代码

include $(BUILD_SHARED_LIBRARY)

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

ifndef GSTREAMER_ROOT_ANDROID


出现找不到 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

进入目录按照要求拷贝到项目中来



删除Gstreamer@XXXXX@部分 影响编译

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



设置成这样 应该就可以了,遇到异常 再分析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: