侧边栏壁纸
  • 累计撰写 372 篇文章
  • 累计创建 60 个标签
  • 累计收到 109 条评论

目 录CONTENT

文章目录

ijkplayer SDK 编译时 NDK 版本问题 You need the NDKr10e or later

Z同学
2022-02-23 / 0 评论 / 5 点赞 / 639 阅读 / 1,855 字
温馨提示:
本文最后更新于 2022-02-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

很多时候,我们在编译ijkplayer SDK的时候。问题往往会出现在ndk的版本上。

那么我们如何确保自己下载的ndk的版本是ijkplayer 支持的呢?由于ijkplayer 的配置已经比较久了。

我们如果下载最新的ndk之后,能不能让ijkplayer 支持呢?

本篇文章就用来探讨这个话题。

1.ijkplayer 如何判断我们的ndk的?

在ijkplayer的源码: ijkplayer/android/contrib/tools 文件夹中有一个 do-detect-env.sh 文件。

image-20220223175744979

这个文件中进行判断了ijkplayer 编译时需要的ndk的版本。我们通过vim命令打开文件后可以看到以下的判断:

image-20220223180024199

详细阅读这个文档之后我们可以知道。ndk 10,11,12,13,14 的版本都支持。

我们如果要想它支持更高的ndk版本。可以直接修改上面的代码。

改为: 11*|12*|13*|14*|15* 等等,往后不断添加就可以了。

2. 下载NDK

我们可以通过android官网下载指定版本的ndk

NDK 下载 | Android NDK | Android Developers (google.cn)

image-20220223180227684

但是上面下载的都是新的,我们还需要更老版本的:官网提供的下载链接在下面

Unsupported Downloads · android/ndk Wiki (github.com)

我列一下Linux环境下的ndk下载地址吧:

我们可以根据需求直接下载相应的ndk。

版本太老的ndk,不支持通过android SDK Manager工具进行下载了。需要我们手动下载。

3. ijkPlayer 读取的NDK的版本是从哪里获取的?

我们有时候还不能确定配置是否正确,那么ijkPlayer 读取的ndk的字段是在哪里呢?

在你的ndk的:source.properties 文件的第二行。

image-20220223181610077

我们打开该文件后可以看到第二行的信息内容:

image-20220223181635119

这个revision 就是ijk判断的逻辑了。

你可以升级更高的ndk版本进行打包。但如果更高会不会有其他的编译问题,我就不知道了。

由于我本地采用的ndk-13进行的编译。

5

评论区