自动化构建 React Native Android APK。包括依赖检查、Debug/Release 构建、设备安装。使用此 Skill 来构建 APK、测试安装、或排查构建问题。
| 项目 | 路径 |
|---|---|
| JAVA_HOME | C:/Program Files/Java/jdk-17 |
| ANDROID_HOME | C:\Users\Steve\AppData\Local\Android\Sdk |
| 项目目录 | frontend/CretasFoodTrace/android |
| 输出 APK | android/app/build/outputs/apk/release/app-release.apk (~98MB) |
# 1. 添加 CMake 路径修复 (必须! Windows 250字符限制)
# 在 frontend/CretasFoodTrace/android/build.gradle 的末尾添加:
cat >> frontend/CretasFoodTrace/android/build.gradle << 'GRADLE'
// CMake path length workaround (Windows MAX_PATH)
subprojects { subproject ->
def applyCmakeWorkaround = {
def androidExt = subproject.extensions.findByName('android')
if (androidExt != null) {
try {
if (androidExt.externalNativeBuild?.cmake?.path != null) {
androidExt.externalNativeBuild.cmake.buildStagingDirectory = file("C:/b/${subproject.name}")
}
} catch (Exception ignored) {}
}
}
try { subproject.afterEvaluate { applyCmakeWorkaround() } }
catch (Exception e) { applyCmakeWorkaround() }
}
GRADLE
# 2. 清理旧 CMake 缓存
rm -rf node_modules/react-native-reanimated/android/.cxx
# 3. 构建
ANDROID_HOME="C:\\Users\\Steve\\AppData\\Local\\Android\\Sdk" \
JAVA_HOME="C:/Program Files/Java/jdk-17" \
cmd //c "cd frontend\CretasFoodTrace\android && gradlew.bat assembleRelease"
# 4. 复制到项目根目录
cp frontend/CretasFoodTrace/android/app/build/outputs/apk/release/app-release.apk ./CretasFoodTrace.apk
# 5. 清理 CMake 临时目录 + 恢复 build.gradle
rm -rf C:/b
git checkout frontend/CretasFoodTrace/android/build.gradle
ANDROID_HOME="C:\\Users\\Steve\\AppData\\Local\\Android\\Sdk" \
JAVA_HOME="C:/Program Files/Java/jdk-17" \
cmd //c "cd frontend\CretasFoodTrace\android && gradlew.bat assembleDebug"
Windows 下 react-native-reanimated 的 CMake 对象路径超过 250 字符限制,必须用 buildStagingDirectory 重定向到短路径 (C:/b/)。
build.gradlegit checkout 恢复 build.gradle(不要提交这个修改)rm -rf node_modules/react-native-reanimated/android/.cxxmklink /J) 不可用 — Metro bundler 会解析回原始路径com.cretas.foodtracetoLocaleString/toLocaleDateString/toLocaleTimeString,使用 src/utils/formatters.tsreferences/build-troubleshooting.md - 构建问题排查references/signing-guide.md - 签名配置