webrtc封装sdk(七)如何在macos上编译Android版本webrtc
发布日期:2021-06-29 04:52:09 浏览次数:2 分类:技术文章

本文共 1926 字,大约阅读时间需要 6 分钟。

有些开发的朋友习惯使用macos来工作,所以需要在macos上编译webrtc android版本,

但是根据webrtc官方的说法,目前只支持在linux系统下编译webrtc android版本,
经过自己的研究发现,其实可以通过很少的修改,在mac上编译通过webrtc android。
这里说的方法不是使用linux虚拟机,是真的在macos下编译。
下面讲解一下如果操作。

准备阶段

你需要下载两份webrtc代码

一份是mac系统下的mac或ios版本
一份是linux系统下的android版本

1. 下载mac系统下的android ndk/sdk

首先打开webrtc中的文件build/config/android/config.gni

此文件写明了应该使用哪个版本的sdk,ndk,以及它们的引用路径。
我们需要自己下载对应版本ndk,sdk,并且需要修改此文件中的引用路径,来告诉webrtc编译时使用我们下载的sdk,ndk。
###ndk版本为r12b:

if (!defined(default_android_ndk_root)) {    default_android_ndk_root = "//third_party/android_tools/ndk"    default_android_ndk_version = "r12b"    default_android_ndk_major_version = 12  } else {    assert(defined(default_android_ndk_version))    assert(defined(default_android_ndk_major_version))  }

下载地址为:

其他版本把r12b替换为你要的版本即可
旧版本ndk如何下载?参考:

sdk版本为25(with Google Play services):

if (!defined(default_android_sdk_root)) {    default_android_sdk_root = "//third_party/android_tools/sdk"    default_android_sdk_version = "25"    default_android_sdk_build_tools_version = "25.0.2"  }  if (!defined(default_lint_android_sdk_root)) {    # Purposefully repeated so that downstream can change    # default_android_sdk_root without changing lint version.    default_lint_android_sdk_root = "//third_party/android_tools/sdk"    default_lint_android_sdk_version = "25"  }  if (!defined(default_extras_android_sdk_root)) {    # Purposefully repeated so that downstream can change    # default_android_sdk_root without changing where we load the SDK extras    # from. (Google Play services, etc.)    default_extras_android_sdk_root = "//third_party/android_tools/sdk"  }

下载sdk可以通过android studio中的sdk管理器下载带Google Play services的sdk

##2.执行官方的编译命令,发现错误拷贝缺失文件

现在我们尝试按照官网说明来编译android
执行如下命令:

gn gen out/Debug --args='target_os="android" target_cpu="arm"'ninja -C out/Debug

此时会发生错误,提示缺少文件

我们需要把linux系统下下载的webrtc android目录下对应的文件拷贝过来。
这里可能有大概10个左右的缺失文件或目录,需要每个都拷贝过来。
当拷贝完成后,就解决了mac下编译webrtc android的问题。

转载地址:https://blog.csdn.net/zhangpeng_linux/article/details/85858436 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:webrtc封装sdk(八)使用webrtc desktop_capture截屏
下一篇:[小米面试题]一个乱序数组a[0...n-1],求a[j]-a[i]的最大值

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月06日 03时14分57秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章