Use*_*337 5 android android-build
这个问题似乎已经被问了很多,但是所有人都试图使用eclipse将库打包到APK中。但是,我的要求是使用Android构建系统将库打包到APK(稍后将通过Java使用System.loadLibrary()加载)到APK中,即我想编写一个执行此工作的Android.mk文件。
要求:1.预先构建的共享库:libTest.so 2.编写一个Android.mk文件,将其打包到apk内的libs / armeabi-7中。
我对使用的构建系统了解不多,但是在导出所需的环境变量之后,使用“ mm”命令完成了编译。
当我为LOCAL_JNI_SHARED_LIBRARIES提供libTest时,它会尝试在其导出的路径中找到它,但在该路径中找不到它,因此构建失败。
任何人都可以在编写将Android的预构建共享库打包到APK中的Android.mk文件时提供任何指示吗?
为了预先构建您的本机库,您必须
jni在您的项目文件夹中创建文件夹libs在您的项目文件夹中创建文件夹将 make 文件添加Adnroid.mk到 jni 文件夹中,它应该如下所示:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := Test
LOCAL_SRC_FILES := Test.cpp
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)注1:Test.cpp是包含本地方法实现的主库源文件。您可以添加更多源作为空格分隔的列表。
注意 2:不要包含标题,它们会自动包含。
注3:如果需要启用C++ STL,则创建另一个make 文件- Application.mk,将其添加到该jni文件夹中并APP_STL := stlport_static在其中设置标志。
然后你必须设置一个构建器。请参阅这篇文章了解如何执行此操作:
完成这些步骤后,构建器将在libs文件夹中创建您的库,在构建整个应用程序时该文件夹将自动打包到 apk 中。
注意:您的库名称应该小写,这是 Linux 约定。系统会自动添加“lib”前缀,因此最终的库名称将为 libtest.so。
| 归档时间: |
|
| 查看次数: |
9537 次 |
| 最近记录: |