SDL中文论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5569|回复: 0
打印 上一主题 下一主题

[Android] Android下的相关*.so

[复制链接]

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
跳转到指定楼层
楼主
发表于 2017-6-1 08:34:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ancientcc 于 2017-6-1 08:45 编辑

有开发者遇到以下错误,这个错误和so有关。
  1. ErrorL: dalvik.system
  2. PathClassLocader[DexPathList[[zip file "/data/app/com.leagor.blesmart-2/base.apk],nativeLibraryDirectories=[/vendor/lib64,/system/lib64]]] couldn't find "libSDL2.so"
复制代码


Andorid下app需要的so分为两部分,一是来自SDL项目,二是app编译出的so。

1)来自SDL项目
它们包括libSDL2.so、libSDL2_image.so、libSDL2_mixer.so、libSDL2_ttf.so、libvpx.so。虽然叫法是来自SDL,但包括了非SDL的项目,像libvpx.so。Rose认为这些库共同特点是不太需要改动。既然不太改动,为简化编译步骤,在下载了Rose后就默认给出这几个so,它们被放在<src>/linker/android/lib/armeabi-v7a。

如果开发者想自个编译这些so,1)到https://github.com/freeors/SDL下载源码;2)按《Rose编程指南》“1.5 Android Studio + NDK”中写的编译各个库。

2)app编译出的so
它们包括libc++_shared.so、libmain.so。libc++_shared.so是NDK自带、LLVM的c++运行库。libmain.so是app主库,除了app源码,rose库源码,还包括了那些认为会依赖严重的开源库,包括webrtc、boringssl、gettext、jsoncpp、expat。

如何让apk链入这些库
注:《Rose编程指南》“1.5 Android Studio + NDK”有叙述以下步骤。
要让apk链入这些库,这些库需要被放在<app>/libs/armeabi-v7a目录下。
  1. cd %studio%
  2. %NDK%/ndk-build
复制代码

会编译app,并把生成的libc++_shared.so、libmain.so放在apk要求的<app>/libs/armeabi-v7a目录。
  1. cd %SCRIPTS%
  2. android_2_app.bat %studio%
复制代码

它会把“来自SDL项目”中的so复制到<app>/libs/armeabi-v7a目录。执行它后该目录就会以下文件了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|丽谷软件|libsdl.cn

GMT+8, 2025-5-2 01:06 , Processed in 0.045697 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表