Fix: Complete Android project with proper Gradle setup
Android Build / build (push) Failing after 9s

This commit is contained in:
amos
2026-06-02 09:45:02 +08:00
commit a529be8615
12 changed files with 181 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
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: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Build Debug APK
run: |
# 使用 gradle 命令而不是 ./gradlew
gradle wrapper --gradle-version 8.2
./gradlew assembleDebug --no-daemon
- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: app-debug
path: app/build/outputs/apk/debug/app-debug.apk
+22
View File
@@ -0,0 +1,22 @@
*.iml
.gradle
/local.properties
/.idea
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
# Keystore files
*.jks
*.keystore
# Google Services (e.g. google-services.json)
google-services.json
# Freeline
freeline.py
freeline/
freeline_project_description.json
+19
View File
@@ -0,0 +1,19 @@
# Android CI Demo
这是一个用于测试 Gitea Actions Android 编译的示例项目。
## 功能
- 自动编译 Android Debug APK
- 使用 JDK 17
- 支持 Gradle 缓存
## 使用方法
1. Push 代码到 `main` 分支
2. Gitea Actions 自动触发构建
3. 在 Actions 页面下载 APK artifact
## 构建产物
- `app/build/outputs/apk/debug/app-debug.apk`
+32
View File
@@ -0,0 +1,32 @@
plugins {
id 'com.android.application'
}
android {
namespace 'com.example.demo'
compileSdk 34
defaultConfig {
applicationId "com.example.demo"
minSdk 24
targetSdk 34
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
}
+15
View File
@@ -0,0 +1,15 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
@@ -0,0 +1,12 @@
package com.example.demo;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello from Gitea Actions!" />
</LinearLayout>
+3
View File
@@ -0,0 +1,3 @@
<resources>
<string name="app_name">Demo</string>
</resources>
+4
View File
@@ -0,0 +1,4 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '8.2.0' apply false
}
+3
View File
@@ -0,0 +1,3 @@
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
android.useAndroidX=true
android.enableJetifier=true
+5
View File
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
+16
View File
@@ -0,0 +1,16 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "Demo"
include ':app'