針對 Cocos2d-x + Lua 專案,提供一支可直接放在 proj.android 目錄下的 build_apk.bat,整合 SVN 更新、LuaJIT 編譯加密、ASmaker 資源加密、NDK 建置、Ant Release 打包 全流程,修改頂部路徑變數即可套用。
assets/、Resources/、舊 APKluajit.exe -b 將 .lua 編譯為 .luacResources/ 加密輸出至 assets/ndk-build 編譯 C++ 原生庫-release.apkset JAVA_HOME="C:\Program Files\Java\jdk1.8.0_05"
set ANT_HOME="D:\Program\Software\apache-ant-1.9.4"
set ANDROID_HOME="D:\Program\Software\android sdk\sdk"
set NDK_HOME="D:\Program\Software\android-ndk-r9d-windows-x86_64\android-ndk-r9d"
set SVN_HOME="C:\Program Files\TortoiseSVN\bin"
set WORK_DIR="D:\engine\projects\XXXXX\proj.android"
set RESOURCES_DIR=%WORK_DIR%\..\Resources
set ASSETS_DIR=%WORK_DIR%\assets
@echo off
rem ---- 清理 ----
if exist %ASSETS_DIR% (rd /q /s %ASSETS_DIR%)
if exist %RESOURCES_DIR% (rd /q /s %RESOURCES_DIR%)
if exist %WORK_DIR%\bin\XXXXX-release.apk (del /q /f %WORK_DIR%\bin\XXXXX-release.apk)
rem ---- SVN 更新 ----
"%SVN_HOME%\TortoiseProc.exe" /command:update /path:"D:\engine\projects\XXXXX" /closeonend:1
"%SVN_HOME%\TortoiseProc.exe" /command:update /path:"D:\engine" /closeonend:1
pushd %WORK_DIR%
rem ---- LuaJIT 編譯 ----
for /r %RESOURCES_DIR% %%i in (*.lua) do (
luajit.exe -b %%i %%i
)
rem ---- ASmaker 加密 ----
ASmaker -i %RESOURCES_DIR% -o %ASSETS_DIR%
rem ---- NDK 建置 ----
call "%NDK_HOME%\ndk-build" -C "%WORK_DIR%" "NDK_MODULE_PATH=D:\engine;D:\engine\cocos2dx\platform\third_party\android\prebuilt"
rem ---- Ant Release ----
call "%ANDROID_HOME%\tools\android" update project -p "%WORK_DIR%"
call ant release
popd
pause
luajit.exe 需在 PATH 或指定完整路徑;Lua 5.1 專用。xcopy 資源。CMake + Gradle。Gradle (Android Studio 專案結構)。新專案請直接採用 Cocos Creator + Gradle 建置體系,支援增量編譯、多渠道打包、Kotlin DSL 腳本,維護性遠優於 BAT。本腳本僅供舊版 Cocos2d-x 3.x 專案維護期參考。