Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android NDK: jni/Android.mk: Cannot find module with tag 'cocos2dx' in import path解決辦法

Android NDK: jni/Android.mk: Cannot find module with tag 'cocos2dx' in import path解決辦法

編輯:關於Android編程

在網上收集了很多的方法都沒有見效,這樣也許有很多的原因,為了其他人的開發,本人將所見到的所有答案列舉出來,供大家參考,分享是一種美德

Eclipse環境新建環境出現如下錯誤:

Android NDK: jni/Android.mk: Cannot find module with tag 'cocos2dx' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
Android NDK:
jni/Android.mk:19: *** Android NDK: Aborting. . Stop.

解決方案為:

在項目proj.android\jni\Android.mk(E:\android_tools\cocos2d-2.0-x-2.0.4\cocos2d-2.0-x-2.0.4\cocos2dx\platform\third_party\android\prebuilt\Demo\proj.android\jni\Android.mk)文件中添加路徑:

$(call import-add-path, E:\android_tools\cocos2d-2.0-x-2.0.4\cocos2d-2.0-x-2.0.4)\
$(call import-add-path, E:\android_tools\cocos2d-2.0-x-2.0.4\cocos2d-2.0-x-2.0.4\cocos2dx\platform\third_party\android\prebuilt)\
$(call import-module,CocosDenshion/android) \
$(call import-module,cocos2dx) \
$(call import-module,extensions)

或者在你項目中的android.mk中加類似如下代碼:

$(call import-add-path,F:\SELF_F\COCOS2d\cocos2d\cocos2d\cocos2dx\platform\third_party\android\prebuilt)
$(call import-add-path, F:\SELF_F\COCOS2d\cocos2d\cocos2d)
$(call import-module,CocosDenshion/android)
$(call import-module,cocos2dx)
$(call import-module,extensions)
$(call import-module,cocos2dx)

其他的方法我直接復制前輩們的代碼:

具體的語句多參考其他正確的Android.mk
import-module的功能 導入外部模塊的.mk文件 ,和 include基本一樣。 概念上的區別是include導入的是由我們自己寫的.mk。而import-module導入的是外部庫、外部模塊提供的.mk。 用法上:include的路徑是.mk文件的絕對路徑。 而import是設置的路徑指定到模塊的.mk所在目錄,是相對於NDK_MODULE_PATH中的路徑列表的相對路徑。
import-module的使用 $(call import-module,相對路徑)
-----------------場景重現--------------------------- 比如我的當前模塊要調用 cocosdenshion模塊。 1\找到模塊名字和路徑 找到cocosdenshion模塊的android.mk的位置。F:\cocos2d-x\CocosDenshion\android\android.mk 打開看到: LOCAL_MODULE := cocosdenshion_shared ... include $(BUILD_STATIC_LIBRARY) 那麼cocosdenshion模塊在我自己的android.mk中引用它是應該叫它cocosdenshion_shared。而且他是個靜態庫。
2\在Android.mk中引用模塊 就像普通代碼中引用頭文件一樣。 在android.mk的最後一行調用 $(call import-module,CocosDenshion/android) 來導入模塊。 注意:我的NDK_MODULE_PATH=/cygdrive/f/cocos2d-x 是已經設置好了的。 如果引用的模塊裡面也有import-module,他的相對路徑也要加到NDK_MODULE_PATH中。如果它沒被加進去的話。 然後 LOCAL_WHOLE_STATIC_LIBRARIES += cocos_jpeg_static 聲明我這模塊要引用該靜態庫模塊。 -------------------------------------------------------
import-module的使用注意 1、設置路徑時,注意與NDK_MODULE_PATH中的路徑相互配合。 1、導入模塊的.mk中如果也有import-module,則注意其相對路徑也要在NDK_MODULE_PATH中。 2、上面說了import-module和include一樣。如果import-module和Include包含了同一個.mk,會報重復包含的錯誤。

NDK_MODULE_PATH的配置
NDK_MODULE_PATH的作用 NDK_MODULE_PATH是一個很重要的變量,當android.mk中使用了$(call import-module,XXX)函數引入外部庫文件時會用到,用以指示該往哪裡去找這個文件。 如果NDK_MODULE_PATH 沒有設置或者設置不正確。編譯時都是報錯 Are you sure your NDK_MODULE_PATH variable is properly defined。 NDK_MODULE_PATH的設置與格式 NDK_MODULE_PATH 是一個環境變量,不是android.mk中設置的變量。 NDK_MODULE_PATH多個路徑用冒號分割。不是分號!且整個字符串中間不能有空格。格式不正確也會報錯上面的錯誤的。 設置NDK_MODULE_PATH的方法 1、在系統環境裡手動添加這個環境變量, 2、在build_native.sh中 運行ndk-build之前使用export命令定義環境變量NDK_MODULE_PATH。 如:export NDK_MODULE_PATH=路徑1:路徑2:路徑3 3、直接將NDK_MODULE_PATH=路徑1:路徑2 加到 ndk-build命令的參數後面。ndk-build的參數最終會直接傳給make. 如:$NDK_ROOT_LOCAL/ndk-build -C $HELLOWORLD_ROOT NDK_MODULE_PATH=路徑1:路徑2 (命令 make aaa=213 //在編譯makefile之前將aaa當作環境變量設置為213.) 4、還可以在android.mk中設置NDK_MODULE_PATH 在import語句之前加入, $(call import-add-path,$(LOCAL_PATH)/platform/third_party/android/prebuilt) 將一個新的路徑加入NDK_MODULE_PATH變量。 NDK_MODULE_PATH的注意 感覺NDK_MODULE_PATH中路徑中有那些,自己一定要時刻清楚。路徑盡量設在模塊某個共同的根目錄下,不要捨得太亂,免得用起來亂。

上面的復制地址為:http://blog.sina.com.cn/s/blog_4057ab62010197z8.html
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved