"не удается найти модуль с тегом" CocosDenshion/android "в пути импорта" ошибка в приложении cocos2dx
Я пытаюсь скомпилировать собственное приложение Android, разработанное на cocos2d-x. Когда я пытаюсь отладить мое приложение, я получаю следующую ошибку.
Android NDK: jni/Android.mk: Cannot find module with tag 'CocosDenshion/android' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
У меня есть следующие строки в файле android.mk
$(Call import-add-path, $(LOCAL_PATH)/../../../CocosDenshion/android)
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static
include $(BUILD_SHARED_LIBRARY)
$(call import-module,CocosDenshion/android)
$(call import-module,cocos2dx)
В моем build_native.sh NDK_MODULE_PATH определяется как
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"
Может ли кто-нибудь помочь мне решить эту проблему.
Ответы
Ответ 1
У меня была такая же проблема некоторое время назад
когда я определяю переменную cocos2dx в eclipse, она не увидела ее при построении, поэтому возникла ошибка модуля ndk.
Затем я попытался установить путь к модулю жестко закодированным без переменной, и он работал
поэтому мой путь модуля ndk выглядит так, а также определен ndk_root в eclipse
if [[ "$buildexternalsfromsource" ]]; then
echo "Building external dependencies from source"
"$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=/home/myname/adt/cocos2dx:/home/myname/adt/cocos2dx/cocos2dx/platform/third_party/android/source"
Вот как это выглядит в моем Windows-ПК, попробуйте
if [[ "$buildexternalsfromsource" ]]; then
echo "Building external dependencies from source"
"$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=/cygdrive/c/Users/metin/Desktop/cocos2dx:/cygdrive/c/Users/metin/Desktop/cocos2dx/cocos2dx/platform/third_party/android/source"
else
echo "Using prebuilt externals"
"$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=/cygdrive/c/Users/metin/Desktop/cocos2dx:/cygdrive/c/Users/metin/Desktop/cocos2dx/cocos2dx/platform/third_party/android/prebuilt"
fi
Вот мой Android.mk
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
include $(BUILD_SHARED_LIBRARY)
$(call import-add-path, /cygdrive/c/Users/metin/Desktop/cocos2dx)
$(call import-add-path, /cygdrive/c/Users/metin/Desktop/cocos2dx/cocos2dx/platform/third_party/android/prebuilt)
$(call import-module,CocosDenshion/android)
$(call import-module,cocos2dx)
$(call import-module,external/chipmunk)
$(call import-module,extensions)
Ответ 2
Вам нужно определить свой NDK_MODULE_PATH в папку, содержащую папку "CocosDension/Android".
Так, например, если вы определяете NDK_MODULE_PATH += /cygdrive/c/ndk_modules
вам нужно поставить свой кокос dension здесь: /cygdrive/c/ndk_modules/CocosDension/Android/Android.mk
Ознакомьтесь с этой документацией:
https://docs.google.com/document/d/127ZkklXDyknjKAIVAos-DWI9nZSB3uKmTI84lk1TJ9k/edit
https://android.googlesource.com/platform/ndk/+/675fe49445e65ba44d91f4d85ed9b4d5b5ff6745/docs/IMPORT-MODULE.TXT
Ответ 3
Даже у меня были проблемы с Cocos2d-x android.
Вы можете попробовать и посмотреть, помогает ли это.
Ответ 4
У меня была такая же проблема. Проблема состоит в том, что NDK_MODULE_PATH
является переменной окружения, а Eclipse (4.2) не позволяет вам определять переменные среды для отладки, только для сборки.
Таким образом, определение переменной NDK_MODULE_PATH
во всей системе - одно из решений. В Linux вы можете сделать это, например, отредактировав .profile
и добавив следующее:
export NDK_MODULE_PATH="path/to/module"
Это решение является постоянным, но не гибким.
Другим решением является запуск eclipse из командной строки:
$ export NDK_MODULE_PATH="path/to/module"
$ eclipse
Это более гибко, и вы можете сделать это с помощью простого script. Если вы изменили NDK_MODULE_PATH, вам нужно только перезапустить Eclipse и не весь сеанс.
Ответ 5
Проверка
build_native.sh > **COCOS2DX_ROOT="$DIR/../../.."**
ех)
Project Name : FirstExam
c:\cocos2d-x\FirstExam ==> **COCOS2DX_ROOT="$DIR/../.."**
c:\cocos2d-x\example\FirstExam ==> **COCOS2DX_ROOT="$DIR/../../.."**
Ответ 6
http://www.cocos2d-x.org/forums/6/topics/36474
http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging
В приведенных выше ссылках подробно описаны способы отладки проекта cocos2d-x как собственного приложения для Android.
Ответ 7
Вы должны изменить эту строку в "build_native.sh"
COCOS2DX_ROOT="$DIR/../.."
в зависимости от местоположения вашего проекта Android на основе cocos2d-x root.
Например, если ваш проект для вашего Android-проекта:
C:\cocos2d-х\Projects\ProjectName\proj.android
то
COCOS2DX_ROOT="$DIR/../../.."
(вам нужно пройти три шага назад, чтобы добраться до корня cocos2d-x)
но если ваш путь к проекту
C:\cocos2d-х\ProjectName\proj.android
то
COCOS2DX_ROOT="$DIR/../../.."
(вам нужно пройти два шага назад, чтобы добраться до корня cocos2d-x)
надеюсь, что поможет