21

我正在尝试编译在 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"

谁能帮我解决这个问题。

4

7 回答 7

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 电脑中的外观 试试看

如果 [[ "$buildexternalsfromsource" ]]; 然后
    echo "从源构建外部依赖"
    "$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”
别的
    echo "使用预建的外部"
    "$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”
菲

这是我的 Android.mk

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static
LOCAL_WHOLE_STATIC_LIBRARIES += 花栗鼠静态

包括 $(BUILD_SHARED_LIBRARY)

$(调用导入添加路径,/cygdrive/c/Users/metin/Desktop/cocos2dx)
$(调用导入添加路径,/cygdrive/c/Users/metin/Desktop/cocos2dx/cocos2dx/platform/third_party/android/prebuilt)

$(调用导入模块,CocosDenshion/android)
$(调用导入模块,cocos2dx)
$(调用导入模块,外部/花栗鼠)
$(调用导入模块,扩展)
于 2013-04-28T10:14:35.083 回答
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

https://android.googlesource.com/platform/ndk/+/675fe49445e65ba44d91f4d85ed9b4d5b5ff6745/docs/IMPORT-MODULE.TXT

于 2014-06-18T05:11:29.807 回答
1

我遇到过同样的问题。问题是,NDK_MODULE_PATHis 环境变量和 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 而不是整个会话。

于 2013-09-25T10:19:17.050 回答
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/../../.."**
于 2013-12-13T01:29:34.670 回答
1

您必须在“build_native.sh”中更改此行

COCOS2DX_ROOT="$DIR/../.." 

取决于基于 cocos2d-x root 的 android 项目的位置。例如,如果您的 android 项目路径是:C:\cocos2d-x\Projects\ProjectName\proj.android 那么

COCOS2DX_ROOT="$DIR/../../.." 

(你必须后退三步才能到达 cocos2d-x 的根目录)

但如果您的项目路径是 C:\cocos2d-x\ProjectName\proj.android 那么

COCOS2DX_ROOT="$DIR/../../.." 

(你必须后退两步才能到达 cocos2d-x 的根目录)

希望有帮助

于 2014-01-14T11:01:15.410 回答
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 应用程序进行调试。

于 2013-12-13T05:51:08.230 回答
1

甚至我对 Cocos2d-x android 也有问题。你可以试试这个,看看它是否有帮助。

于 2013-05-02T07:35:18.937 回答