60 lines
1.6 KiB
YAML
60 lines
1.6 KiB
YAML
name: Android Build
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, main ]
|
|
pull_request:
|
|
branches: [ master, main ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: android
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Java 17
|
|
run: |
|
|
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
|
|
echo "=== 使用 Java 17 ==="
|
|
java -version
|
|
|
|
- name: Build Debug APK
|
|
run: |
|
|
# 验证环境
|
|
echo "=== 环境检查 ==="
|
|
java -version
|
|
gradle --version
|
|
|
|
# 生成 Gradle wrapper (使用 Gradle 8.2)
|
|
echo "=== 生成 Gradle Wrapper ==="
|
|
gradle wrapper --gradle-version 8.2
|
|
|
|
# 编译 Debug APK - 彻底禁用 Daemon 和所有可能导致崩溃的功能
|
|
echo "=== 开始编译 ==="
|
|
./gradlew assembleDebug \
|
|
--no-daemon \
|
|
--stacktrace \
|
|
--no-watch-fs \
|
|
--no-configuration-cache \
|
|
--no-build-cache \
|
|
-Dorg.gradle.daemon=false \
|
|
-Dorg.gradle.jvmargs="-Xmx2g -XX:+UseG1GC -XX:MaxMetaspaceSize=512m" \
|
|
-Dorg.gradle.internal.native.headers.unresolved.dependencies.ignore=true \
|
|
-Dfile.encoding=UTF-8
|
|
|
|
# 验证输出
|
|
echo "=== 编译完成 ==="
|
|
ls -lh app/build/outputs/apk/debug/
|
|
|
|
- name: Upload APK
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: app-debug
|
|
path: app/build/outputs/apk/debug/app-debug.apk
|
|
retention-days: 7
|