2012-02-21 30 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

相關問題