我已经实现了一个JNI android应用程序。此应用程序需要一些额外的“共享库”作为APK的一部分打包。使用Ecplise,我已将这些库添加到项目的'/ libs / armeabi'文件夹中。
但是,在启动应用程序时(通过集成调试器),我添加的“共享库”将从“armeabi”文件夹中删除。
答案 0 :(得分:9)
您无需自行将此库复制到libs
文件夹。这项工作应该由ndk-build
完成。
这两个步骤应该足够了:
在项目的根级别创建mylibs
(您可以使用任何其他名称)文件夹。并将您的库放入此文件夹。
对于每个库,在include $(CLEAR_VARS)
语句之前添加以下行,将mylib
替换为您的库名:
include $(CLEAR_VARS)
LOCAL_MODULE:=mylib
LOCAL_SRC_FILES:=../mylibs/libmylib.so
include $(PREBUILT_SHARED_LIBRARY)
(LOCAL_SRC_FILES
可能需要略有不同的路径。这取决于您的Eclipse配置。)
答案 1 :(得分:1)
在此上下文中添加的另一个注意事项是,外部SharedLib的路径必须相对于jni目录(或任何spcified @ LOCAL_PATH),即“LOCAL_SRC_FILES:= ../../ .. /Android/ffmpeg/libavcodec/libavcodec.so“将在绝对路径不会的地方工作。