我正在尝试编译在cocos2d-x上开发的Android本机应用程序。当我尝试调试我的应用程序时,我收到以下错误。
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"
任何人都可以帮我解决这个问题。
答案 0 :(得分:7)
前一段时间我遇到了同样的问题 当我在eclipse中定义cocos2dx变量时,它在构建时没有看到它,因此发生了错误ndk模块路径
然后我尝试将模块路径设置为硬编码而没有变量,并且它工作正常 所以我的ndk模块路径看起来像这样,也在eclipse中定义了ndk_root
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 pc中试一试的方法
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)
答案 1 :(得分:2)
您需要将NDK_MODULE_PATH定义到包含“CocosDension / Android”文件夹的文件夹。
例如,如果您定义NDK_MODULE_PATH += /cygdrive/c/ndk_modules
你需要把你的cocos dension放在这里:/cygdrive/c/ndk_modules/CocosDension/Android/Android.mk
查看此文档:
https://docs.google.com/document/d/127ZkklXDyknjKAIVAos-DWI9nZSB3uKmTI84lk1TJ9k/edit
答案 2 :(得分:1)
即使我遇到过Cocos2d-x android的问题。 您可以尝试this并查看是否有帮助。
答案 3 :(得分:1)
我有同样的问题。问题是,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
这更灵活,您可以使用简单的脚本来完成。如果更改NDK_MODULE_PATH,则只需重新启动Eclipse而不是整个会话。
答案 4 :(得分:1)
检查
build_native.sh > **COCOS2DX_ROOT="$DIR/../../.."**
离)
Project Name : FirstExam
c:\cocos2d-x\FirstExam ==> **COCOS2DX_ROOT="$DIR/../.."**
c:\cocos2d-x\example\FirstExam ==> **COCOS2DX_ROOT="$DIR/../../.."**
答案 5 :(得分:1)
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应用程序。
答案 6 :(得分:1)
您必须在“build_native.sh”中更改此行
COCOS2DX_ROOT="$DIR/../.."
取决于基于cocos2d-x root的android项目的位置。 例如,如果您的Android项目路径是: C:\的cocos2d-x \项目\项目名\ proj.android 那么
COCOS2DX_ROOT="$DIR/../../.."
(你必须回三步才能到达cocos2d-x的根目录)
但是如果您的项目路径是 C:\的cocos2d-x \项目名\ proj.android 那么
COCOS2DX_ROOT="$DIR/../../.."
(你必须走两步才能到达cocos2d-x的根目录)
希望有所帮助