如何将共享库打包到apk中?

时间:2017-06-07 12:15:37

标签: android build shared-libraries aapt nativelibrary

我正在为自定义构建系统编写一些脚本,我需要在android apk中包含一些.so文件(目前尚不支持带有本机库的文件)。

我已为./gradlew assembleDebug --debug项目调用了apk,该项目依赖于aar本地库(.so)来获取完整日志但未找到任何日志。所以文件路径传递给aapt或任何其他android构建工具(虽然我已经看过.so使用ndk strip工具剥离命令)。

如何完成细节? aapt工具会这样做吗?是否存在任何争论,或者它们应该存储在某些特定路径上(例如libs)。

1 个答案:

答案 0 :(得分:0)

是,aapt通过aapt add -v MyApp.apk lib/armeabi/libMyLib.so之类的调用。

使用aapt --list MyApp.apk确保它位于具有该目录结构的apk中(lib文件夹,armeabi子文件夹和其中的MyApp.apk)。

安装应用后,请/data/app/com.Company/android/MyApp-X/lib/arm/查看libMyLib.so以确保其已被复制。

如果出现问题,logcat输出实际上非常有用,告诉你试过的路径,试过的函数等等。

显然,请更换应用名称,公司名称和armeabi架构以适合您项目的参数。