DLNA库Platinum新增安卓64位so编译方法

下载代码(该仓库我已经修改相关编译错误和支持安卓 64 位 so 编译)

git clone https://github.com/wesley666/Platinum -b master

下载Neptune

git submodule update --init

下载 ndk15:

https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip

建议安装 conda 环境来进行编译

https://www.anaconda.com/download/success

shell 复制代码
conda create -n dlna  python=2.7

pip install scons

conda activate dlna

编译

shell 复制代码
#以你的路径为准,如果出现路径错误,可以改成绝对路径
#export ANDROID_NDK_ROOT=/home/wesley/ndk/android-ndk-r15c/ 
export ANDROID_NDK_ROOT=~/ndk/android-ndk-r15c/ 
scons -c target=arm-android-linux build_config=Release
scons target=arm-android-linux build_config=Release
scons -c target=arm64-android-linux build_config=Release
scons target=arm64-android-linux build_config=Release
cd Source/Platform/Android/module/platinum
~/ndk/android-ndk-r15c/ndk-build clean
~/ndk/android-ndk-r15c/ndk-build NDK_DEBUG=0

(dlna) wesley@Wesley:~/Project/Platinum/Source/Platform/Android/module/platinum$ ~/ndk/android-ndk-r15c/ndk-build

Android NDK: Found platform level in ./project.properties. Setting APP_PLATFORM to android-14.

jni/Android.mk:5: "TARGET_ARCH_ABI:armeabi"

jni/Android.mk:5: "TARGET_ARCH_ABI:armeabi-v7a"

jni/Android.mk:5: "TARGET_ARCH_ABI:arm64-v8a"

jni/Android.mk:15: "build arm64"

armeabi Compile++ thumb: platinum-jni <= platinum-jni.cpp

armeabi StaticLibrary : libstdc++.a

armeabi SharedLibrary : libplatinum-jni.so

armeabi Install : libplatinum-jni.so => libs/armeabi/libplatinum-jni.so

armeabi-v7a Compile++ thumb: platinum-jni <= platinum-jni.cpp

armeabi-v7a StaticLibrary : libstdc++.a

armeabi-v7a SharedLibrary : libplatinum-jni.so

armeabi-v7a Install : libplatinum-jni.so => libs/armeabi-v7a/libplatinum-jni.so

arm64-v8a Compile++ : platinum-jni <= platinum-jni.cpp

arm64-v8a StaticLibrary : libstdc++.a

arm64-v8a SharedLibrary : libplatinum-jni.so

arm64-v8a Install : libplatinum-jni.so => libs/arm64-v8a/libplatinum-jni.so

obj和 libs目录区别:一个用于追溯和调试,一个用于正式版发布。

(dlna) wesley@Wesley:~/Project/Platinum/Source/Platform/Android/module/platinum$ file libs/arm64-v8a/libplatinum-jni.so

libs/arm64-v8a/libplatinum-jni.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildIDsha1=a8cdaa3a1288bd98c13556fbd4a1499e31005091, stripped

(dlna) wesley@Wesley:~/Project/Platinum/Source/Platform/Android/module/platinum$ file obj/local/arm64-v8a/libplatinum-jni.so

obj/local/arm64-v8a/libplatinum-jni.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildIDsha1=a8cdaa3a1288bd98c13556fbd4a1499e31005091, with debug_info, not stripped

相关推荐
机智的张尼玛7 小时前
我基于 Kotlin Multiplatform 实现了一套跨平台的弱网离线同步引擎
android·开源·kotlin
安卓修改大师10 小时前
安卓修改大师反编译引擎Apktool深度解析:版本选择、参数说明与实战技巧
android
error:(10 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python
黄林晴12 小时前
Kuikly 是什么?和KMP有什么关系?
android·前端
帅次12 小时前
Android 高级工程师面试:Kotlin 语法基础 近1年高频追问 22 题
android·面试·kotlin·扩展函数·空安全
想你依然心痛13 小时前
嵌入式日志系统:分级日志、环形缓冲区与远程输出——运行时调试、非侵入
android·前端·javascript
用户693717500138414 小时前
AI Agent 里的 Loop 到底是什么?
android·前端·后端
海天鹰15 小时前
安卓分割空字符串数组长度为1
android
Coffeeee15 小时前
从 Android 15 到 Android 17,谷歌猝不及防的音频改动
android·前端·google
用户693717500138415 小时前
AI 领域的 Harness,到底是什么意思?
android·前端·后端