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'] }