在安卓13版本的源码中添加第三方so库,第三方so库又需要引用system下面的so库,调用库的时候会失败
时间: 2024-02-17 08:04:39 浏览: 102
Android.mk引入第三方jar包和so库文件的方法
5星 · 资源好评率100%
在 Android 13 中,系统库被拆分为多个模块,并且在构建系统中使用了名为 `system_shared_libs` 的配置来管理系统共享库。因此,在添加第三方 `so` 库时,需要将其包含在 `system_shared_libs` 配置中,并确保其正确地依赖系统库。
为了解决这个问题,你需要做以下几个步骤:
1. 在设备上将第三方 `so` 库复制到 `/system/lib` 目录下,并确保其权限为 `0644` 或 `0755`:
```
$ adb root
$ adb remount
$ adb push libthird-party.so /system/lib/
$ adb shell chmod 0644 /system/lib/libthird-party.so
```
2. 在 Android 源码中将第三方 `so` 库包含在 `system_shared_libs` 配置中。这个配置在每个 Android 版本中都有所不同,以 Android 13 为例,在 `frameworks/base/config/common.mk` 文件中添加以下行:
```
BOARD_SYSTEM_SHARED_LIBRARIES += libthird-party
```
3. 在第三方 `so` 库的 `Android.mk` 文件中声明对系统库的依赖,例如:
```
LOCAL_SHARED_LIBRARIES := libsystem_core
```
这里使用 `LOCAL_SHARED_LIBRARIES` 声明第三方 `so` 库需要依赖 `libsystem_core` 库。
通过以上步骤,应该能够将第三方 `so` 库正确地添加到 Android 13 源码中,并确保其正确地依赖系统库。
阅读全文