编译Platinum SDK库,以便在Android上使用创建DLNA Render

Platinum SDK是一款开源的库,方便用户在各种平台上快算实现DLNA Render功能,本文章主要介绍,使用Android NDK编译Platinum SDK,方便后续在Android平台上使用。

一.Platinum 源代码下载地址:

https://github.com/plutinosoft/Platinum

二.编译环境准备:

Platinum官方的Android编译介绍只有如下几句简单介绍 ,在执行下面命令之前,需要先配置编译环境。我这边使用的mac OS。

1.下载Android NDK ,配置ANDROID_NDK_ROOT目录。

执行vi ~/.bash_profile,打开文件

添加export ANDROID_NDK_ROOT=/Users/xxx/Downloads/Code/tool/android-ndk-r13b 到文件最后.(这里的ndk版本可以替换为其他的,“xxx”代表的你的Mac用户名)

保存,退出后,执行source .bash_profile。

2.安装scons。

执行brew install scons 安装scons(brew如果未安装,请自行安装)

三、开始生成编译的Android.mk

先进到Platinum 根目录下,执行如下指令

scons target=arm-android-linux build_config=Release

这时可能会遇到各种问题,需要一步步解决,每解决一个问题就要重新执行上边的scons指令。

1.提示print格式不对,找到如下图的两个文件,用文本编辑器修改print为正确格式print(..)

2.提示:AttributeError: 'SConsEnvironment' object has no attribute 'has_key'。

同样用文本编辑器打开上图中的Config.scons文件,找到所有的包含has_key的地方

 将if env.has_key('android_host_system') 修改为if  'android_host_system' in env //在python3上废除了has_key方法。

3.提示sh: arm-linux-androideabi-g++: command not found。

将上图中Config.scons文件的,ANDROID_CROSS_PREFIX = 'arm-linux-androideabi',修改为绝对路径ANDROID_CROSS_PREFIX = os.path.join(ANDROID_NDK_ROOT,'toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi')

4.提示Source/Core/PltTaskManager.h:45:21: fatal error: Neptune.h: No such file or directory

这时进到ThirdParty/Neptune/ 目录会发现目录是空的,需要单独下载Neptune相关源码,可退出到ThirdParty目录下,执行git clone https://github.com/plutinosoft/Neptune.git。下载完如下图所示

5.以上4个问题解决后,应该就可以看到,scons: done building targets.指令,标明这步操作成功。

另外,这中间可能会存在系统禁止使用ndk中的各种可执行程序的弹框,只要进到系统设置的隐私与安全性中点击'仍然允许'即可。(仍然允许提示会在下图中弹出)

 

 四。开始编译SDK

进到Source/Platform/Android/module/platinum目录下,执行

/Users/xxx/Downloads/Code/tool/android-ndk-r13b/ndk-build NDK_DEBUG=0.

如果是intel芯片的mac的话,

应该会遇到以下问题:

解决方法:

找到Source/Platform/Android/module/platinum/jni/Android.mk文件 ,将所有的$(PLT_ROOT)/../Neptune/Source/Core更换成$(PLT_ROOT)/ThirdParty/Neptune/Source/Core。

之后再次编译,正常就可以编译通过,会在Source/Platform/Android/module/platinum/lib生成对应的so库。

但如果使用苹果芯片的mac还可能会先遇到以下问题,

1.提示ERROR: Unknown host CPU architecture: arm64

用文本编辑器打开/Users/xxx/Downloads/Code/tool/android-ndk-r13b/ndk-build文件,将

$DIR/build/ndk-build "$@"修改为arch -x86_64 /bin/bash $DIR/build/ndk-build "$@"

2.提示Android NDK: Host 'awk' tool is outdated. Please define NDK_HOST_AWK to point to Gawk or Nawk !

找到/Users/xxx/Downloads/Code/tool/android-ndk-r13b/prebuilt/darwin-x86_64/bin中的awk文件,将其修改名称或者直接删除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值