首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

cocos2d-x 實戰筆記:Win32 專案移植 Android 完整流程 (含坑點避雷)

     編輯:關於C語言

前置作業:設定 Android 專案產生器

編輯 cocos2d-x/create-android-project.bat,設定三個關鍵變數:

  • NDK_ROOT:Android NDK 安裝路徑
  • ANDROID_SDK_ROOT:Android SDK 安裝路徑
  • COCOS2DX_ROOT:cocos2d-x 引擎根目錄

create-android-project.bat 變數設定

步驟 1:建立 Android 專案骨架

  1. 執行 create-android-project.bat
  2. 輸入套件名 (如 com.example.game) 與專案名 ⚠️ 注意:會刪除覆蓋同名目錄 (含 Win32 專案),請先備份!
  3. 輸入最低支援 API Level (如 5 = Android 2.1)

完成後,引擎根目錄下會出現同名專案資料夾 (如 Test/),內含 android/, Classes/, Resources/ 三大目錄。

專案目錄結構 Android API Level 選擇

步驟 2:導入遊戲邏輯與資源

  • 將 Win32 專案的 Classes/ 完整複製覆蓋到 Android 專案 Classes/ (刪除範例碼 HelloWorld* 等)
  • 將 Win32 專案的 Resources/ 複製覆蓋到 Android 專案 Resources/ (刪除範例資源)

步驟 3:修改 Android.mk (關鍵易錯點 ⚠️)

請編輯 Classes/Android.mk (非 proj.android/jni/Android.mk),不同教程指向不同檔案,編錯無效。

Android.mk 位置確認

需修改三處:

LOCAL_SRC_FILES += 你的所有 .cpp 檔案 (以空白分隔)
LOCAL_C_INCLUDES += 你引用的第三方庫標頭路徑
LOCAL_LDLIBS += 你需要連結的第三方庫 .so/.a

步驟 4:Cygwin 編譯原生庫 (.so)

  1. 啟動 Cygwin.bat
  2. cd /cygdrive/d/你的路徑/Test/android (注意 Cygwin 路徑寫法)
  3. 執行 ./build_native.sh

Cygwin 編譯過程 編譯成功產出 .so

首次編譯較久,後續增量編譯較快。也可從其他 Android 專案複製對應 .so 加速 (需架構相容)。

步驟 5:匯入 Eclipse 打包 APK

  • File → New → Project → Android Project → Create project from existing source (⚠️ 必須選此項,Import 可能無法識別)
  • 選擇 Test/android 目錄
  • 建置專案 → Run As → Android Application

Eclipse 匯入專案 真機/模擬器執行畫面

常見坑點與對策

進階資源

關於 Android 平台整合第三方庫 (如 Lua、Box2D、自有 C++ 庫),參考附件文件《cocos2d-x Android 第三方庫整合指南》(由社群大神「塞風朔雪」撰寫,極具參考價值)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
問題原因解決方案
資源檔找不到/載入失敗Win32 不分大小寫,Android (Linux) 區分大小寫統一資源檔名小寫,或修正代碼中路徑大小寫
想同時維護 VS 與 Eclipse 專案目錄結構不同將 Win32 專案檔 (.sln/.vcproj) 複製進 Android 專案根目錄,共用 Classes/Resources
中文亂碼VS 預設 GBK,Android 預設 UTF-8VS 專案統一轉 UTF-8 (推薦),或用 iconv 批次轉碼
橫向/直向鎖定失效Android 專案自動加入方向鎖定代碼在 Android 專案 AppDelegate.cpp 用 #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) 條件編譯移除