Android JNI APK打包
我已经实现了一个JNI android应用程序。此应用程序需要将一些额外的“共享库”打包为APK的一部分。我使用Ecplise将这些lib添加到项目的“/libs/armeabi”文件夹中 但是,在启动应用程序时(通过集成调试器),我添加的“共享库”将从“armeabi”文件夹中删除Android JNI APK打包,android,android-ndk,java-native-interface,Android,Android Ndk,Java Native Interface,我已经实现了一个JNI android应用程序。此应用程序需要将一些额外的“共享库”打包为APK的一部分。我使用Ecplise将这些lib添加到项目的“/libs/armeabi”文件夹中 但是,在启动应用程序时(通过集成调试器),我添加的“共享库”将从“armeabi”文件夹中删除 如何防止删除这些附加LIB 如何确保APK中包含额外的所需SOs 您不需要自己将此库复制到libs文件夹中。这项工作应该由ndk build完成 这两个步骤应该足够了: 在项目的根级别上创建mylibs(可以使用
- 如何防止删除这些附加LIB
- 如何确保APK中包含额外的所需SOs
libs
文件夹中。这项工作应该由ndk build
完成
这两个步骤应该足够了:
mylibs
(可以使用任何其他名称)文件夹。并将您的库放入此文件夹mylib
语句的include$(CLEAR\u VARS)
之前添加以下行:
include $(CLEAR_VARS)
LOCAL_MODULE:=mylib
LOCAL_SRC_FILES:=../mylibs/libmylib.so
include $(PREBUILT_SHARED_LIBRARY)
(对于
本地\u SRC\u文件,您可能需要稍微不同的路径。这取决于您的Eclipse配置。)在此上下文中要添加的另一个注意事项是,外部SharedLib的路径必须与jni目录(或任何指定的@LOCAL\u路径)相关,即,“本地_SRC_文件:=../../../Android/ffmpeg/libavcodec/libavcodec.so“将在绝对路径不起作用的地方工作。完成上述操作后,我在构建过程中得到了以下结果:ndroid NDK:jni/Android.mk:swscale:LOCAL_MODULE_文件名不应包括文件扩展名安卓NDK:ERROR:jni/Android.mk:swscale:LOCAL_SRC_文件应指向以“.a”结尾的文件。应该有prebuild\u SHARED\u LIBRARY
,而不是prebuild\u STATIC\u LIBRARY
。