2016-02-19 1 views
0

Я получаю сообщение об ошибке, что мой AppDelegate не найден.
«ошибка что-то вроде: Нет правила, чтобы сделать целевой * .cpp необходимы * .o»Как добавить локальные файлы в Android.mk, которые не находятся в папке jni

Мой Android.mk выглядит следующим образом:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d) 
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external) 
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos) 

LOCAL_MODULE := cocos2dcpp_shared 

LOCAL_MODULE_FILENAME := libcocos2dcpp 

LOCAL_SRC_FILES := hellocpp/main.cpp \ 
        ../../Classes/AppDelegate.cpp 

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes 


Я не знаю, что это неправильно. Я предполагаю, что это потому, что я не устанавливаю путь к классам правильно. В проводнике пакетов моя структура выглядит следующим образом: screenshot of package explorer



В моей реальной структуре папок, папка Классы не внутри proj.android. Он находится в папке, расположенной снаружи.

Folders for Classes and MobileApp Папки для классов и мобильных телефонов

-------------------------------------- -------------------------------------------------- --------
Inside MobileApp Внутри MobileApp

----------------------------------- -------------------------------------------------- -----------
Inside proj.android where jni is located
Внутри proj.android где JNI находится

Я не совсем уверен, как я, чтобы связать мои файлы классов .ccp правильно. Как добавить их в качестве локальных файлов, чтобы я мог правильно их создать? Буду признателен за всю помощь, которую я мог бы получить. Благодарю.

+0

'AppDelegate.o' уже существует. Очистите или удалите 'proj.android/obj' перед его созданием. – GaloisPlusPlus

+0

Что делать, если вы используете '$ (LOCAL_PATH) /../../ Classes/AppDelegate.cpp'? – Michael

+0

@Michael я пробовал это ../../../Classes/AppDelegate.cpp это сработало. но проблема в том, что мне приходилось вводить классы один за другим. Есть ли более простой способ? – cessmestreet

ответ

0

Немного сложно сказать с ваших скриншотов, но похоже, что классы и jni-каталоги находятся в одном родительском каталоге. Если это правда, вам нужно только один «../», чтобы вернуться к родительскому каталогу. В принципе, я думаю, вы хотите изменить все свои пути на классы до «../Classes/». Похоже, что путь к cocos2d должен быть изменен одинаково.

Кроме того, вам не хватает последней строки модуля, которая будет включать в себя $(). Например, если вы хотите построить динамически подключаемую библиотеку для кода C++, вы должны добавить эту строку в конце Android.mk:

include $(BUILD_SHARED_LIBRARY) 

Вы можете увидеть некоторые примеры Android.mks here, и соответствующий Документация для Android here.