From 92fb56071be40db90fb78b330fab9d2d3bc6e801 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Sun, 12 Jul 2026 23:35:54 +0800
Subject: [PATCH 01/37] Update README.md
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 9e665c4e5..016d32865 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+20260712
RunnerUp
========
From db7713265578231b713e44726ca33af8abce373b Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 06:48:59 +0800
Subject: [PATCH 02/37] Update build.gradle
build.gradle version
---
build.gradle | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/build.gradle b/build.gradle
index 6d3f0cc0b..5802cf1e8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -27,7 +27,7 @@ project.ext {
appcompat_version = "1.7.1"
annotation_version = "1.9.1"
preference_version = "1.2.1"
- googlePlayServicesVersion = '21.3.0'
+ googlePlayServicesVersion = '21.4.0'
googlePlayServicesWearableVersion = '20.0.1'
googleWearVersion = '2.9.0'
@@ -132,4 +132,4 @@ allprojects {
google()
mavenCentral()
}
-}
\ No newline at end of file
+}
From 20348a6e67ea7ff4fb72cac865375a2da7d27cb1 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 07:14:22 +0800
Subject: [PATCH 03/37] Update actions.yml
build *.aab *.apk
---
.github/workflows/actions.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 89392a316..9f70c1bef 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -77,6 +77,8 @@ jobs:
# possibly include: app/build/outputs/bundle/latestRelease/ wear/build/outputs/bundle/release/
path: |
**/build/outputs/logs/
+ app/build/outputs/bundle/latestRelease/*.aab
+ wear/build/outputs/bundle/release/*.aab
- name: Test
run: ./gradlew test
From 73346ccd2177a3809fa550b37f175e95c4482edd Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 07:20:05 +0800
Subject: [PATCH 04/37] Update actions.yml
---
.github/workflows/actions.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 9f70c1bef..482e4fa2a 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -48,6 +48,8 @@ jobs:
- name: Setup Android SDK
uses: android-actions/setup-android@v4
+ with:
+ cmdline-tools-version: '9.0'
- name: Install Android SDK components
run: |
From 6c66506b0e876001014e46cd10953cbfa16afed1 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 07:24:08 +0800
Subject: [PATCH 05/37] Update actions.yml
---
.github/workflows/actions.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 482e4fa2a..d860255d2 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -49,7 +49,7 @@ jobs:
- name: Setup Android SDK
uses: android-actions/setup-android@v4
with:
- cmdline-tools-version: '9.0'
+ cmdline-tools-version: '9477386'
- name: Install Android SDK components
run: |
From 62c7e9c24787b199a6f62c5204eea68022f043c0 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 07:35:53 +0800
Subject: [PATCH 06/37] Update actions.yml
---
.github/workflows/actions.yml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index d860255d2..267c2d5c1 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -132,3 +132,11 @@ jobs:
name: fdroid-logs
path: |
build/reports/problems/
+
+ - name: Upload F-Droid APK
+ if: always()
+ uses: actions/upload-artifact@v7
+ with:
+ name: fdroid-apk
+ path: |
+ app/build/outputs/apk/latestRelease/*.apk
From 93216e5b185d208857c5f7b7cb0feeb3370416b4 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 15:01:56 +0800
Subject: [PATCH 07/37] Update actions.yml
---
.github/workflows/actions.yml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 267c2d5c1..cf57f08a0 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -133,6 +133,9 @@ jobs:
path: |
build/reports/problems/
+ - name: List F-Droid APK (for debug)
+ run: ls -la app/build/outputs/apk/latestRelease/ || echo "Directory not found"
+
- name: Upload F-Droid APK
if: always()
uses: actions/upload-artifact@v7
@@ -140,3 +143,4 @@ jobs:
name: fdroid-apk
path: |
app/build/outputs/apk/latestRelease/*.apk
+
From 8fadb85b63c5f850fd11c3c3f4ec6b079c4aface Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 23:31:20 +0800
Subject: [PATCH 08/37] Update actions.yml
---
.github/workflows/actions.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index cf57f08a0..8f5d4c0b1 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -80,6 +80,7 @@ jobs:
path: |
**/build/outputs/logs/
app/build/outputs/bundle/latestRelease/*.aab
+ app/build/outputs/apk/latestRelease/*.apk
wear/build/outputs/bundle/release/*.aab
- name: Test
From 981c25bdbffe74466849e0a095afe33232a6ab9f Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 23:38:17 +0800
Subject: [PATCH 09/37] Update actions.yml
---
.github/workflows/actions.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 8f5d4c0b1..62f6d1086 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -68,8 +68,8 @@ jobs:
echo "${{ secrets.RUNALYZE }}" > $GITHUB_WORKSPACE/runalyze.properties
chmod +x gradlew
- - name: Build bundle
- run: ./gradlew :app:bundleLatestRelease :wear:bundleRelease
+ - name: Build bundle and APK
+ run: ./gradlew :app:bundleLatestRelease :app:assembleLatestRelease :wear:bundleRelease
- name: Upload build logs
if: always()
From ef23161daf2a98385608a8c4840b1d7ceec68212 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 23:44:35 +0800
Subject: [PATCH 10/37] Update actions.yml
---
.github/workflows/actions.yml | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 62f6d1086..0cef362c5 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -82,9 +82,14 @@ jobs:
app/build/outputs/bundle/latestRelease/*.aab
app/build/outputs/apk/latestRelease/*.apk
wear/build/outputs/bundle/release/*.aab
-
- - name: Test
- run: ./gradlew test
+ - name: Find APK files
+ run: |
+ echo "Searching for all APK files..."
+ find app/build -name "*.apk" -type f
+ echo "Listing apk directory structure..."
+ ls -la app/build/outputs/apk/ || echo "APK directory not found"
+ - name: Test
+ run: ./gradlew test
- name: Upload test logs
if: always()
From 49f89cfee51111e2b749bfb1b855c850c6d7b0b2 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 23:46:50 +0800
Subject: [PATCH 11/37] Update actions.yml
---
.github/workflows/actions.yml | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 0cef362c5..6bc7e3895 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -68,29 +68,29 @@ jobs:
echo "${{ secrets.RUNALYZE }}" > $GITHUB_WORKSPACE/runalyze.properties
chmod +x gradlew
- - name: Build bundle and APK
+ - name: Build AAB and APK
run: ./gradlew :app:bundleLatestRelease :app:assembleLatestRelease :wear:bundleRelease
+ - name: Find APK files
+ run: |
+ echo "Searching for all APK files..."
+ find app/build -name "*.apk" -type f
+ echo "Listing apk directory structure..."
+ ls -la app/build/outputs/apk/ || echo "APK directory not found"
+
- name: Upload build logs
if: always()
uses: actions/upload-artifact@v7
with:
name: build-bundle
- # possibly include: app/build/outputs/bundle/latestRelease/ wear/build/outputs/bundle/release/
path: |
**/build/outputs/logs/
app/build/outputs/bundle/latestRelease/*.aab
app/build/outputs/apk/latestRelease/*.apk
wear/build/outputs/bundle/release/*.aab
- - name: Find APK files
- run: |
- echo "Searching for all APK files..."
- find app/build -name "*.apk" -type f
- echo "Listing apk directory structure..."
- ls -la app/build/outputs/apk/ || echo "APK directory not found"
- - name: Test
- run: ./gradlew test
+ - name: Test
+ run: ./gradlew test
- name: Upload test logs
if: always()
uses: actions/upload-artifact@v7
From 06e25cb18b7679aa7a5980eb79bfd3b261acd1b0 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Mon, 13 Jul 2026 23:48:02 +0800
Subject: [PATCH 12/37] Update actions.yml
---
.github/workflows/actions.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 6bc7e3895..0e5212344 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -68,7 +68,7 @@ jobs:
echo "${{ secrets.RUNALYZE }}" > $GITHUB_WORKSPACE/runalyze.properties
chmod +x gradlew
- - name: Build AAB and APK
+ - name: Build AAB and APK
run: ./gradlew :app:bundleLatestRelease :app:assembleLatestRelease :wear:bundleRelease
- name: Find APK files
From 935e792427e097e88865a6e816544c85fe5de6ba Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 06:58:49 +0800
Subject: [PATCH 13/37] Update actions.yml
---
.github/workflows/actions.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 0e5212344..1cb60733d 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -86,7 +86,7 @@ jobs:
path: |
**/build/outputs/logs/
app/build/outputs/bundle/latestRelease/*.aab
- app/build/outputs/apk/latestRelease/*.apk
+ app/build/outputs/apk/latest/release/*.apk
wear/build/outputs/bundle/release/*.aab
- name: Test
@@ -148,5 +148,5 @@ jobs:
with:
name: fdroid-apk
path: |
- app/build/outputs/apk/latestRelease/*.apk
+ app/build/outputs/apk/latest/release/*.apk
From 96982665bb0fe3c212df0a9f0c5ed8cbb239519f Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 07:24:18 +0800
Subject: [PATCH 14/37] Update build.gradle
---
app/build.gradle | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/app/build.gradle b/app/build.gradle
index da9f33c51..e03ed78c5 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -123,6 +123,10 @@ android {
aidl = true
buildConfig = true
resValues = true
+ compose = true
+ }
+ composeOptions {
+ kotlinCompilerExtensionVersion = "1.5.4"
}
androidResources {
generateLocaleConfig = true
@@ -181,6 +185,18 @@ dependencies {
testImplementation "junit:junit:${rootProject.ext.junitVersion}"
testImplementation "org.mockito:mockito-core:${rootProject.ext.mockitoVersion}"
+
+ // 新增 Jetpack Compose 依赖
+ implementation platform('androidx.compose:compose-bom:2024.04.01')
+ implementation 'androidx.compose.ui:ui'
+ implementation 'androidx.compose.ui:ui-graphics'
+ implementation 'androidx.compose.ui:ui-tooling-preview'
+ implementation 'androidx.compose.material3:material3'
+ implementation 'androidx.compose.runtime:runtime-livedata' // 如果你需要与 LiveData 交互
+
+ // Debug 依赖 (仅在调试时使用)
+ debugImplementation 'androidx.compose.ui:ui-tooling'
+ debugImplementation 'androidx.compose.ui:ui-test-manifest'
}
allprojects {
From 2f149ac2502659440e137555550efaa226dea681 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 07:49:54 +0800
Subject: [PATCH 15/37] Update build.gradle
---
build.gradle | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/build.gradle b/build.gradle
index 5802cf1e8..42daa41b2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,6 +5,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:9.2.1'
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
}
}
@@ -105,6 +106,9 @@ project.ext {
} else {
applicationId = "org.runnerup"
}
+
+ composeBomVersion = '2024.04.01'
+ kotlinCompilerExtensionVersion = '1.5.4'
}
// Special setup for antPlusLib, not allowed to copy the .aar and create mavenLocal
From 8cc19b50f5200f5ce5ab59ed13fededf7c9266fd Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 16:31:48 +0800
Subject: [PATCH 16/37] Create ComposeMainActivity.kt
---
.../runnerup/compose/ComposeMainActivity.kt | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 app/src/main/org/runnerup/compose/ComposeMainActivity.kt
diff --git a/app/src/main/org/runnerup/compose/ComposeMainActivity.kt b/app/src/main/org/runnerup/compose/ComposeMainActivity.kt
new file mode 100644
index 000000000..84292e2c0
--- /dev/null
+++ b/app/src/main/org/runnerup/compose/ComposeMainActivity.kt
@@ -0,0 +1,28 @@
+package org.runnerup.compose
+
+import android.os.Bundle
+import androidx.activity.ComponentActivity
+import androidx.activity.compose.setContent
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.tooling.preview.Preview
+
+class ComposeMainActivity : ComponentActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContent {
+ Greeting("RunnerUp")
+ }
+ }
+}
+
+@Composable
+fun Greeting(name: String) {
+ Text(text = "Hello, $name!")
+}
+
+@Preview
+@Composable
+fun PreviewGreeting() {
+ Greeting("RunnerUp")
+}
From 4ed8c52bd661caf92a4ad00da3f95469c320a3fc Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 16:56:38 +0800
Subject: [PATCH 17/37] Update AndroidManifest.xml
---
app/AndroidManifest.xml | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/app/AndroidManifest.xml b/app/AndroidManifest.xml
index 6b112a6da..fb0e0c337 100644
--- a/app/AndroidManifest.xml
+++ b/app/AndroidManifest.xml
@@ -67,14 +67,23 @@
tools:ignore="UnusedAttribute"
android:dataExtractionRules="@xml/data_extraction_rules">
+
+
+
+
+
+
-
+
From 00589bca80ee88923ae90607bd621f4489d06835 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 18:46:14 +0800
Subject: [PATCH 18/37] Update actions.yml
---
.github/workflows/actions.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 1cb60733d..785e8a23c 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -4,6 +4,7 @@ on:
push:
branches:
- master
+ - feature/compose-ui
- test/**
pull_request:
types: [opened, synchronize, reopened]
From f7f65c1896c4097dd2c008727fbef8acefa09a7f Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 18:57:10 +0800
Subject: [PATCH 19/37] Update build.gradle
---
build.gradle | 1 +
1 file changed, 1 insertion(+)
diff --git a/build.gradle b/build.gradle
index 42daa41b2..39931cd30 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,6 +11,7 @@ buildscript {
plugins {
id "com.diffplug.spotless" version "8.6.0"
+ id 'org.jetbrains.kotlin.plugin.compose' version '1.9.0'
}
repositories {
From b27b4f28d165a4870a2f0cede032f077d75f3f84 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 22:51:01 +0800
Subject: [PATCH 20/37] Update build.gradle
---
app/build.gradle | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/build.gradle b/app/build.gradle
index e03ed78c5..217f20b5f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,4 +1,6 @@
apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-kapt'
def getGitHash = providers.exec {
commandLine('git', 'rev-parse', '--short', 'HEAD')
From 14417febfee58371f472a2f23f02d5cced20557c Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 22:54:58 +0800
Subject: [PATCH 21/37] Update build.gradle
---
build.gradle | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/build.gradle b/build.gradle
index 39931cd30..95fd24fee 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,7 +11,7 @@ buildscript {
plugins {
id "com.diffplug.spotless" version "8.6.0"
- id 'org.jetbrains.kotlin.plugin.compose' version '1.9.0'
+ // 移除了错误的 'org.jetbrains.kotlin.kapt' 插件声明
}
repositories {
@@ -108,6 +108,7 @@ project.ext {
applicationId = "org.runnerup"
}
+ // 保留了 Compose 版本变量,供 app/build.gradle 引用
composeBomVersion = '2024.04.01'
kotlinCompilerExtensionVersion = '1.5.4'
}
From ee80b35e91988e83af0be27a522e6293e3411297 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 23:05:18 +0800
Subject: [PATCH 22/37] Update build.gradle
---
app/build.gradle | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/build.gradle b/app/build.gradle
index 217f20b5f..bef7e977c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -188,6 +188,9 @@ dependencies {
testImplementation "junit:junit:${rootProject.ext.junitVersion}"
testImplementation "org.mockito:mockito-core:${rootProject.ext.mockitoVersion}"
+ // 新增 kapt 依赖,用于 Compose 编译器
+ kapt "androidx.compose.compiler:compiler:1.5.4"
+
// 新增 Jetpack Compose 依赖
implementation platform('androidx.compose:compose-bom:2024.04.01')
implementation 'androidx.compose.ui:ui'
From 99960707af559f835f1a4e73fc69349880121476 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 23:11:16 +0800
Subject: [PATCH 23/37] Update actions.yml
---
.github/workflows/actions.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml
index 785e8a23c..b17758cc6 100644
--- a/.github/workflows/actions.yml
+++ b/.github/workflows/actions.yml
@@ -70,7 +70,7 @@ jobs:
chmod +x gradlew
- name: Build AAB and APK
- run: ./gradlew :app:bundleLatestRelease :app:assembleLatestRelease :wear:bundleRelease
+ run: ./gradlew :app:bundleLatestRelease :app:assembleLatestRelease :wear:bundleRelease --stacktrace --info
- name: Find APK files
run: |
From 274a1ef24ae06989f1740f4bc8f862bf34b44190 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 23:15:03 +0800
Subject: [PATCH 24/37] Update build.gradle
---
app/build.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/build.gradle b/app/build.gradle
index bef7e977c..a493b27aa 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,5 +1,4 @@
apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
def getGitHash = providers.exec {
@@ -7,6 +6,7 @@ def getGitHash = providers.exec {
}.standardOutput.asText.get().strip()
android {
+ compileSdk 34 // 添加这一行,直接指定 compileSdk
buildToolsVersion = rootProject.ext.buildToolsVersion
namespace = 'org.runnerup'
From afbd1a161979f0ac5f9c61742e52dcc1f753fd93 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 23:22:27 +0800
Subject: [PATCH 25/37] Update build.gradle
---
app/build.gradle | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index a493b27aa..09bd9f834 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,5 +1,5 @@
apply plugin: 'com.android.application'
-apply plugin: 'kotlin-kapt'
+//apply plugin: 'kotlin-kapt'
def getGitHash = providers.exec {
commandLine('git', 'rev-parse', '--short', 'HEAD')
@@ -189,7 +189,7 @@ dependencies {
testImplementation "org.mockito:mockito-core:${rootProject.ext.mockitoVersion}"
// 新增 kapt 依赖,用于 Compose 编译器
- kapt "androidx.compose.compiler:compiler:1.5.4"
+ //kapt "androidx.compose.compiler:compiler:1.5.4"
// 新增 Jetpack Compose 依赖
implementation platform('androidx.compose:compose-bom:2024.04.01')
From e91888bd88599b5c3f95be8c608174578990a0b4 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Tue, 14 Jul 2026 23:27:48 +0800
Subject: [PATCH 26/37] Update build.gradle
---
app/build.gradle | 39 +++++++++++----------------------------
1 file changed, 11 insertions(+), 28 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 09bd9f834..9fa2a7878 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.application'
-//apply plugin: 'kotlin-kapt'
+// 已移除 'kotlin-kapt' 插件
def getGitHash = providers.exec {
commandLine('git', 'rev-parse', '--short', 'HEAD')
}.standardOutput.asText.get().strip()
android {
- compileSdk 34 // 添加这一行,直接指定 compileSdk
+ compileSdk 34
buildToolsVersion = rootProject.ext.buildToolsVersion
namespace = 'org.runnerup'
@@ -36,7 +36,6 @@ android {
} else {
java.srcDirs += ['src/osmdroid']
}
- // renderscript.srcDirs = java.srcDirs
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
@@ -47,7 +46,6 @@ android {
productFlavors {
latest {
dimension = "all"
- // multidexing support, min play support
minSdk = rootProject.ext.minSdk
compileSdk = rootProject.ext.compileSdk
targetSdk = rootProject.ext.targetSdk
@@ -57,10 +55,6 @@ android {
}
defaultConfig {
- // Set a separate applicationId to allow variant installations
- // The applicationId is also used in some xml files (android:targetPackage)
- // The packageId (in the manifest) is never changed
- // See also applicationIdFull in common/build.gradle, must be in sync
applicationId = rootProject.ext.applicationId
vectorDrawables.useSupportLibrary = true
}
@@ -72,20 +66,19 @@ android {
buildTypes {
debug {
- // Separate the debug build, sync with common/build.gradle
applicationIdSuffix ".debug"
versionNameSuffix = "-${getGitHash}"
}
release {
debuggable = false
applicationIdSuffix = ""
-
minifyEnabled = rootProject.ext.allowNonFree
shrinkResources = rootProject.ext.allowNonFree
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard.txt'
signingConfig = signingConfigs.release
}
}
+
buildTypes.configureEach {
buildConfigField 'boolean', 'MAPBOX_ENABLED', "${rootProject.ext.mapboxEnabled}"
buildConfigField 'String', 'MAPBOX_ACCESS_TOKEN', "\"${rootProject.ext.mapboxAccessToken}\""
@@ -99,6 +92,7 @@ android {
buildConfigField 'String', 'DROPBOX_ID', "\"${rootProject.ext.dropboxId}\""
buildConfigField 'String', 'DROPBOX_SECRET', "\"${rootProject.ext.dropboxSecret}\""
}
+
lint {
baseline = file('lint-baseline.xml')
checkReleaseBuilds = true
@@ -108,28 +102,28 @@ android {
lintConfig = file('lint-osmdroid.xml')
}
showAll = true
- //textOutput = 'stdout'
textReport = true
- // Treat all warnings as errors
warningsAsErrors = true
- // Halt the build if any errors are found
abortOnError = true
}
+
bundle {
language {
- // Language can be set for audio cues, include all locales
enableSplit = false
}
}
+
buildFeatures {
aidl = true
buildConfig = true
resValues = true
compose = true
}
+
composeOptions {
kotlinCompilerExtensionVersion = "1.5.4"
}
+
androidResources {
generateLocaleConfig = true
}
@@ -137,7 +131,7 @@ android {
repositories {
google()
- mavenCentral() //MapBox GraphView
+ mavenCentral()
if (rootProject.ext.mapboxEnabled) {
maven {
url = 'https://api.mapbox.com/downloads/v2/releases/maven'
@@ -145,10 +139,7 @@ repositories {
basic(BasicAuthentication)
}
credentials {
- // Do not change the username below.
- // This should always be `mapbox` (not your username).
username = 'mapbox'
- // Use the secret token you stored in gradle.properties as the password
def props = new Properties()
props.load(new FileInputStream(rootProject.file("mapbox.properties")))
password = props.mapboxDownloadToken
@@ -175,7 +166,6 @@ dependencies {
implementation "com.squareup.okhttp3:okhttp:5.4.0"
if (rootProject.ext.allowNonFree) {
- // MapBox uses telemetry, without Play there may be exceptions from mapbox (OK to ignore)
latestImplementation "com.google.android.gms:play-services-location:${rootProject.ext.googlePlayServicesVersion}"
}
if (rootProject.ext.mapboxEnabled) {
@@ -188,18 +178,14 @@ dependencies {
testImplementation "junit:junit:${rootProject.ext.junitVersion}"
testImplementation "org.mockito:mockito-core:${rootProject.ext.mockitoVersion}"
- // 新增 kapt 依赖,用于 Compose 编译器
- //kapt "androidx.compose.compiler:compiler:1.5.4"
-
- // 新增 Jetpack Compose 依赖
+ // Jetpack Compose 依赖
implementation platform('androidx.compose:compose-bom:2024.04.01')
implementation 'androidx.compose.ui:ui'
implementation 'androidx.compose.ui:ui-graphics'
implementation 'androidx.compose.ui:ui-tooling-preview'
implementation 'androidx.compose.material3:material3'
- implementation 'androidx.compose.runtime:runtime-livedata' // 如果你需要与 LiveData 交互
+ implementation 'androidx.compose.runtime:runtime-livedata'
- // Debug 依赖 (仅在调试时使用)
debugImplementation 'androidx.compose.ui:ui-tooling'
debugImplementation 'androidx.compose.ui:ui-test-manifest'
}
@@ -207,17 +193,14 @@ dependencies {
allprojects {
tasks.withType(JavaCompile).tap {
configureEach {
- // options.compilerArgs << "-Xlint:deprecation";
options.compilerArgs << "-Xlint:unchecked"
}
}
}
def props = new Properties()
-// For locally signed builds only, Google Play signs the bundle
if (rootProject.file("release.properties").exists()) {
props.load(new FileInputStream(rootProject.file("release.properties")))
-
android.signingConfigs.release.storeFile rootProject.file(props.keyStore)
android.signingConfigs.release.storePassword props.keyStorePassword
android.signingConfigs.release.keyAlias props.keyAlias
From 6faed5c94f6421b155ba2b4f2692f506a2cb67f5 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 09:02:50 +0800
Subject: [PATCH 27/37] Update build.gradle
---
build.gradle | 1 +
1 file changed, 1 insertion(+)
diff --git a/build.gradle b/build.gradle
index 95fd24fee..e3f19e8f2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,6 +12,7 @@ buildscript {
plugins {
id "com.diffplug.spotless" version "8.6.0"
// 移除了错误的 'org.jetbrains.kotlin.kapt' 插件声明
+ id 'org.jetbrains.kotlin.plugin.compose' version '1.9.0' // 添加这一行
}
repositories {
From c2649e716ee292605f53285f7666b3a4b57e15b8 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 09:07:49 +0800
Subject: [PATCH 28/37] Update build.gradle
---
app/build.gradle | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 9fa2a7878..318d569e2 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,5 +1,5 @@
apply plugin: 'com.android.application'
-// 已移除 'kotlin-kapt' 插件
+apply plugin: 'kotlin-android'
def getGitHash = providers.exec {
commandLine('git', 'rev-parse', '--short', 'HEAD')
@@ -112,7 +112,11 @@ android {
enableSplit = false
}
}
-
+ // 关键:显式设置 JVM 目标
+ kotlinOptions {
+ jvmTarget = "17"
+ }
+
buildFeatures {
aidl = true
buildConfig = true
@@ -120,9 +124,9 @@ android {
compose = true
}
- composeOptions {
- kotlinCompilerExtensionVersion = "1.5.4"
- }
+ // composeOptions {
+ // kotlinCompilerExtensionVersion = "1.5.4"
+ // }
androidResources {
generateLocaleConfig = true
From 6775ac6c2af5d6c812be7ea11fc5481b5a53bc2e Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 09:56:08 +0800
Subject: [PATCH 29/37] Update build.gradle
---
build.gradle | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/build.gradle b/build.gradle
index e3f19e8f2..1b621db78 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,14 +5,14 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:9.2.1'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10"
}
}
plugins {
id "com.diffplug.spotless" version "8.6.0"
// 移除了错误的 'org.jetbrains.kotlin.kapt' 插件声明
- id 'org.jetbrains.kotlin.plugin.compose' version '1.9.0' // 添加这一行
+ //id 'org.jetbrains.kotlin.plugin.compose' version '1.9.0' // 添加这一行
}
repositories {
@@ -110,8 +110,10 @@ project.ext {
}
// 保留了 Compose 版本变量,供 app/build.gradle 引用
- composeBomVersion = '2024.04.01'
- kotlinCompilerExtensionVersion = '1.5.4'
+ // composeBomVersion = '2024.04.01'
+ // kotlinCompilerExtensionVersion = '1.5.4'
+ composeBomVersion = '2023.03.00'
+ kotlinCompilerExtensionVersion = '1.4.3'
}
// Special setup for antPlusLib, not allowed to copy the .aar and create mavenLocal
From 77ea0337bae6b864a0886665cd7659b197856ec1 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 09:58:20 +0800
Subject: [PATCH 30/37] Update build.gradle
---
app/build.gradle | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 318d569e2..f28ed4700 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -15,6 +15,10 @@ android {
targetCompatibility = JavaVersion.toVersion("17")
}
+ kotlinOptions {
+ jvmTarget = "17"
+ }
+
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
@@ -112,11 +116,7 @@ android {
enableSplit = false
}
}
- // 关键:显式设置 JVM 目标
- kotlinOptions {
- jvmTarget = "17"
- }
-
+
buildFeatures {
aidl = true
buildConfig = true
@@ -124,9 +124,9 @@ android {
compose = true
}
- // composeOptions {
- // kotlinCompilerExtensionVersion = "1.5.4"
- // }
+ composeOptions {
+ kotlinCompilerExtensionVersion = rootProject.ext.kotlinCompilerExtensionVersion
+ }
androidResources {
generateLocaleConfig = true
@@ -182,8 +182,8 @@ dependencies {
testImplementation "junit:junit:${rootProject.ext.junitVersion}"
testImplementation "org.mockito:mockito-core:${rootProject.ext.mockitoVersion}"
- // Jetpack Compose 依赖
- implementation platform('androidx.compose:compose-bom:2024.04.01')
+ // Jetpack Compose 依赖 - 使用根目录定义的 BOM 版本
+ implementation platform("androidx.compose:compose-bom:${rootProject.ext.composeBomVersion}")
implementation 'androidx.compose.ui:ui'
implementation 'androidx.compose.ui:ui-graphics'
implementation 'androidx.compose.ui:ui-tooling-preview'
From 3c34e4dcc9bf4985c610d239133a504be3cfbd3f Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 11:07:35 +0800
Subject: [PATCH 31/37] Update build.gradle
---
build.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build.gradle b/build.gradle
index 1b621db78..e994969cb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,7 +12,7 @@ buildscript {
plugins {
id "com.diffplug.spotless" version "8.6.0"
// 移除了错误的 'org.jetbrains.kotlin.kapt' 插件声明
- //id 'org.jetbrains.kotlin.plugin.compose' version '1.9.0' // 添加这一行
+ id 'org.jetbrains.kotlin.plugin.compose' version '1.8.10' // 添加这一行
}
repositories {
From 03a93c8d5d1beb6ad1923f72cba7e26988737df1 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 11:08:46 +0800
Subject: [PATCH 32/37] Update build.gradle
---
app/build.gradle | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index f28ed4700..80ff389df 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -124,9 +124,9 @@ android {
compose = true
}
- composeOptions {
- kotlinCompilerExtensionVersion = rootProject.ext.kotlinCompilerExtensionVersion
- }
+ // composeOptions {
+ // kotlinCompilerExtensionVersion = rootProject.ext.kotlinCompilerExtensionVersion
+ // }
androidResources {
generateLocaleConfig = true
From 48d284af9e7de5b5fc4e21461e5677682698ae7e Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 11:33:35 +0800
Subject: [PATCH 33/37] Update build.gradle
---
build.gradle | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/build.gradle b/build.gradle
index e994969cb..da416ec29 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,8 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:9.2.1'
+ //classpath 'com.android.tools.build:gradle:9.2.1'
+ classpath 'com.android.tools.build:gradle:8.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10"
}
}
@@ -12,7 +13,7 @@ buildscript {
plugins {
id "com.diffplug.spotless" version "8.6.0"
// 移除了错误的 'org.jetbrains.kotlin.kapt' 插件声明
- id 'org.jetbrains.kotlin.plugin.compose' version '1.8.10' // 添加这一行
+ //id 'org.jetbrains.kotlin.plugin.compose' version '1.8.10' // 添加这一行
}
repositories {
From 7de0c898a065eebb56e63294b76e4eca121fcf11 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 11:36:29 +0800
Subject: [PATCH 34/37] Update build.gradle
---
app/build.gradle | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 80ff389df..08b250083 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -51,7 +51,7 @@ android {
latest {
dimension = "all"
minSdk = rootProject.ext.minSdk
- compileSdk = rootProject.ext.compileSdk
+ //compileSdk = rootProject.ext.compileSdk
targetSdk = rootProject.ext.targetSdk
versionName = rootProject.ext.versionName
versionCode = rootProject.ext.latestBaseVersionCode + rootProject.ext.versionCode
@@ -124,10 +124,17 @@ android {
compose = true
}
- // composeOptions {
- // kotlinCompilerExtensionVersion = rootProject.ext.kotlinCompilerExtensionVersion
- // }
+ // 1. 启用 composeOptions(关键)
+ composeOptions {
+ kotlinCompilerExtensionVersion = rootProject.ext.kotlinCompilerExtensionVersion
+ }
+ // 2. 添加 packaging 配置(与参考项目对齐)
+ packaging {
+ resources {
+ excludes += "/META-INF/{AL2.0,LGPL2.1}"
+ }
+ }
androidResources {
generateLocaleConfig = true
}
From c7050d1cddb47427413c7aa8d8fba79a286eb6ca Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 11:41:10 +0800
Subject: [PATCH 35/37] Update build.gradle
---
app/build.gradle | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 08b250083..3b31da06f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,5 +1,9 @@
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
+// apply plugin: 'com.android.application'
+// apply plugin: 'kotlin-android'
+plugins {
+ id 'com.android.application'
+ id 'kotlin-android'
+}
def getGitHash = providers.exec {
commandLine('git', 'rev-parse', '--short', 'HEAD')
From 024ac861031ba5592d26b4a781381b3b0f31a299 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 14:26:28 +0800
Subject: [PATCH 36/37] Update build.gradle
---
build.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build.gradle b/build.gradle
index da416ec29..545bf50ba 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
}
dependencies {
//classpath 'com.android.tools.build:gradle:9.2.1'
- classpath 'com.android.tools.build:gradle:8.1.0'
+ classpath 'com.android.tools.build:gradle:8.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10"
}
}
From ae1c1aefcb190fdcc6dbc1df638d8b32794f1860 Mon Sep 17 00:00:00 2001
From: ihuoxin <648834429@qq.com>
Date: Wed, 15 Jul 2026 14:30:55 +0800
Subject: [PATCH 37/37] Update build.gradle
---
app/build.gradle | 40 ++++++++++++++++++++++++++++++++--------
1 file changed, 32 insertions(+), 8 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 3b31da06f..1afbb9a8c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -24,26 +24,50 @@ android {
}
sourceSets {
+ // main {
+ // manifest.srcFile 'AndroidManifest.xml'
+ // java.srcDirs = ['src/main']
+ // if (rootProject.ext.allowNonFree) {
+ // java.srcDirs += ['src/play']
+ // } else {
+ // java.srcDirs += ['src/nonplay']
+ // }
+ // if (rootProject.ext.enableWear) {
+ // java.srcDirs += ['src/wear']
+ // } else {
+ // java.srcDirs += ['src/nonwear']
+ // }
+ // if (rootProject.ext.noMap) {
+ // java.srcDirs += ['src/nomap']
+ // } else if (rootProject.ext.mapboxEnabled) {
+ // java.srcDirs += ['src/mapbox']
+ // } else {
+ // java.srcDirs += ['src/osmdroid']
+ // }
+ // res.srcDirs = ['res']
+ // assets.srcDirs = ['assets']
+ // }
main {
manifest.srcFile 'AndroidManifest.xml'
- java.srcDirs = ['src/main']
+ java.srcDirs = ['src/main/java'] // 明确指定
if (rootProject.ext.allowNonFree) {
- java.srcDirs += ['src/play']
+ java.srcDirs += ['src/play/java'] // 明确指定
} else {
- java.srcDirs += ['src/nonplay']
+ java.srcDirs += ['src/nonplay/java'] // 明确指定
}
if (rootProject.ext.enableWear) {
- java.srcDirs += ['src/wear']
+ java.srcDirs += ['src/wear/java'] // 明确指定
} else {
- java.srcDirs += ['src/nonwear']
+ java.srcDirs += ['src/nonwear/java'] // 明确指定
}
if (rootProject.ext.noMap) {
- java.srcDirs += ['src/nomap']
+ java.srcDirs += ['src/nomap/java'] // 明确指定
} else if (rootProject.ext.mapboxEnabled) {
- java.srcDirs += ['src/mapbox']
+ java.srcDirs += ['src/mapbox/java'] // 明确指定
} else {
- java.srcDirs += ['src/osmdroid']
+ java.srcDirs += ['src/osmdroid/java'] // 明确指定
}
+ // 资源目录保持不变
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}