2012-05-21 39 views
2

我的項目/ jni文件夾中包含以下代碼作爲我的Android.mk。文件夾libA在project/jni中,它有一個Android.mk。我包括力霸在JNI/Android.mk在NDK中包含庫時出錯

JNI/Android.mk:

LOCAL_PATH := $(call my-dir) 
include $(LOCAL_PATH)/libA/Android.mk 
include $(CLEAR_VARS) 
LOCAL_MODULE := hello-jni 
LOCAL_SRC_FILES := hello-jni.c 
include $(BUILD_SHARED_LIBRARY) 

我得到這個錯誤

jni/Android.mk:16: jni: Permission denied 
jni/Android.mk:16: /libA/Android.mk: No such file or directory 
make: *** No rule to make target `/libA/Android.mk'. Stop. 

我試圖給出的解決方案在此: No rule to make target NDK。但同錯誤再次出現。我無法弄清楚爲什麼會發生這種情況。

+0

有什麼建議嗎? – jaffa

回答

1

Makefile是一件棘手的事情。當你調用子目錄等時,my-dir被改變。 但是,您實際上可以解決它,而無需將源代碼放在/ jni文件中。

MY_PATH = $(call my-dir) 
LOCAL_PATH = $(MY_PATH) 

在任何清除變量之前調用第二條語句。完成!

+0

謝謝,你是我的英雄! – jaffa

1

在做了一些研究,而不是搞亂makefile在不同的目錄,我把庫的源代碼放在/ jni中,並從/jni/Android.mk編譯它,問題就解決了。 我想這是最簡單的方法做到這一點