diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2e5022fe..7c2c91ca 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1131,7 +1131,10 @@ jobs: distribution: temurin - uses: gradle/actions/setup-gradle@v4 with: - gradle-version: "8.14.3" + # Kotlin 2.4's Gradle plugin deprecates Gradle < 8.14.4; the app uses the Kotlin + # Android plugin, so bump this job to 8.14.4 (also carries two security fixes). The + # AAR/lib jobs stay on the more-compatible 8.14.3 — they use no Kotlin Gradle plugin. + gradle-version: "8.14.4" - name: Enable KVM group permissions (GitHub-hosted runner) run: | echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules diff --git a/android-llmservice/app/build.gradle.kts b/android-llmservice/app/build.gradle.kts index 9aa79ec0..c3bc9ddf 100644 --- a/android-llmservice/app/build.gradle.kts +++ b/android-llmservice/app/build.gradle.kts @@ -2,6 +2,8 @@ // // SPDX-License-Identifier: MIT +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id("com.android.application") id("org.jetbrains.kotlin.android") @@ -82,8 +84,13 @@ android { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = "17" +} + +kotlin { + // Kotlin 2.x: the old `android { kotlinOptions { jvmTarget = "17" } }` string DSL is now a + // hard error — configure the JVM target through the compilerOptions DSL instead. + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) } } diff --git a/android-llmservice/app/src/main/AndroidManifest.xml b/android-llmservice/app/src/main/AndroidManifest.xml index 2a2e0139..02fb2fec 100644 --- a/android-llmservice/app/src/main/AndroidManifest.xml +++ b/android-llmservice/app/src/main/AndroidManifest.xml @@ -12,8 +12,14 @@ SPDX-License-Identifier: MIT no permission prompt and is fully Google-Play compliant (no MANAGE_EXTERNAL_STORAGE). No INTERNET permission either — LLM Service is fully offline; nothing leaves the device. --> +