2012-02-21 59 views
0

我有一个使用jni的Android应用程序,我试图自动化Eclipse中的构建过程(使用cdt插件)。我需要构建自己的静态库,并且还需要使用一些预编译的库。
这意味着,我需要
一)建立自己的共享库(在这里没有问题)
b)在构建完成后,现有库复制到库/ armeabi文件夹(因为这个文件夹将在构建过程中被清除我必须在每次构建后复制这些文件)作为构建脚本的一部分将文件复制到libs文件夹

我有一些问题b)。我想要做的是我在Android.mk文件中包含$(BUILD_SHARED_LIBRARY)之后插入自定义shell脚本(在按原样执行时工作)。不幸的是,这不起作用,因为只有在Android.mk文件完成后,明显/ libs/armeabi文件夹才会被清除。

这是真的吗?有没有办法将后期构建脚本插入到Android.mk中?有没有什么办法可以在jni代码完成构建之后但在整个构建完成之前执行bash脚本(例如,在构建Java应用程序并开始执行应用程序之前?)?我虽然在eclipse c/C++项目构建设置中必须有某种“后期构建”脚本,但没有这样的事情。

下面是完整的Android.mk文件:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_LDLIBS := -llog 

LOCAL_C_INCLUDES += $(LOCAL_PATH) 

LOCAL_MODULE := player 
LOCAL_SRC_FILES := player.c 

include $(BUILD_SHARED_LIBRARY) 

$(shell ./copy-libs.sh) #this script will get called, but the files will be erased right after 

回答

2

那么,它看起来像有到。所以复制一个更简单的方法,并且如果不定制构建脚本.A库。 NDK支持从ndk-r5开始的预建模块,它们允许在构建过程中根据需要将.a或.so库复制到obj/lib文件夹中。

示例和完整描述可在$ NDK_INSTALLATION_FOLDER/docs /中的PREBUILTS.html文件中找到。

+0

请注意,文档似乎不再包含在NDK中,但有关预制构建的信息可在此处找到:https://developer.android.com/ndk/guides/prebuilts.html – Georgie 2016-07-11 19:13:34

相关问题