Android JNI APK 打包

标签 android android-ndk java-native-interface

我已经实现了一个 JNI android 应用程序。此应用程序需要一些额外的“共享库”作为 APK 的一部分打包。使用 Ecplise,我已将这些库添加到项目的“/libs/armeabi”文件夹中。

但是,在启动应用程序时(通过集成调试器),我添加的“共享库”会从“armeabi”文件夹中删除。

  • 如何防止删除这些额外的库?
  • 如何确保 APK 中包含所需的额外 SO?

最佳答案

您不需要自己将此库复制到 libs 文件夹。此工作应由 ndk-build 完成。

这两个步骤应该足够了:

  1. 在项目的根级别创建 mylibs(您可以使用任何其他名称)文件夹。并将您的库放入此文件夹。

  2. 对于每个库,在 include $(CLEAR_VARS) 语句之前添加以下行,将 mylib 替换为您的库名称:

    include $(CLEAR_VARS)
    LOCAL_MODULE:=mylib
    LOCAL_SRC_FILES:=../mylibs/libmylib.so
    include $(PREBUILT_SHARED_LIBRARY)
    

(对于 LOCAL_SRC_FILES,您可能需要稍微不同的路径。这取决于您的 Eclipse 配置。)

关于Android JNI APK 打包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101220/

相关文章:

android - 将 .pk8 文件转换为 .key 文件

android - 我的应用程序不会在 Android 上使用 OpenSSL 进行链接

java - SWIG 重命名函数

javascript - 在 ChromeCast 上显示静态网页

android - 当我们从 Android 的外部应用程序手动更改权限时会发生什么

android - 尝试使用 NDK 为 Android 构建 PocketSphinx 时出现问题

android - 从字节数组 (byte[]) 转换位图 - 位图仍然为空

Java 到 C 对象传递

java - 如何为此查询编写准备好的语句?

Android NDK open() 设备权限被拒绝