Skip to content

Move to AGP 9.4.1, Gradle 9.8.1, Kotlin 2.4.20 and current androidx - #13

Merged
JKook-Plus merged 1 commit into
mainfrom
deps/agp-9-migration
Oct 9, 2026
Merged

JKook-Plus merged 1 commit into
mainfrom
deps/agp-9-migration

Conversation

@JKook-Plus

Copy link
Copy Markdown
Owner

Brings the build up to date in one step, because the open Dependabot updates depend on each other: the new androidx libraries (#5) need AGP 9.1 or newer and compileSdk 37, and AGP 9 (#7) needs a newer Gradle. Replaces #5, #6 and #7.

Changes

  • Gradle wrapper 8.14.5 to 9.8.1 (wrapper jar matches the published checksum)
  • AGP 8.13.2 to 9.4.1. AGP 9 compiles Kotlin itself, so the kotlin-android plugin is removed
  • Kotlin 2.2.21 to 2.4.20, coroutines 1.10.2 to 1.11.0
  • Compose BOM 2025.12.01 to 2026.09.00, core-ktx 1.17.0 to 1.19.1, exifinterface 1.4.1 to 1.4.2
  • compileSdk 36 to 37. targetSdk stays at 34, so runtime behaviour on the phone does not change
  • Codec.pickEncoder: videoCapabilities is nullable in SDK 37. A null already ended as "not supported" through runCatching; now it does so without an exception
  • Explicit Unit return types on three functions, which Kotlin 2.5 will require
  • tasks.register instead of the by registering delegate, which Gradle 10 removes

Testing

  • ./gradlew testDebugUnitTest lintDebug assembleDebug assembleRelease: 32 tests pass, lint is clean, and the R8 "error parsing kotlin metadata" warnings that Kotlin 2.4 caused under AGP 8 are gone
  • Minified release APK on the API 35 emulator with the virtual UVC camera and USB audio: preview, photo (EXIF intact), a 10 s H.264 + AAC recording, and the web server (page, snapshot, Motion-JPEG, HTTP-FLV, Ogg Opus). No crashes in the log
  • Not tested: a real phone or camera, RTSP, live push, FTP and mail upload

🤖 Generated with Claude Code

AGP 9 needs Gradle 9.6 or newer and compiles Kotlin itself, so the
kotlin-android plugin is gone. The new androidx libraries need
compileSdk 37; targetSdk stays at 34.

compileSdk 37 marks MediaCodecInfo.videoCapabilities as nullable, which
pickEncoder now handles. Three functions get an explicit Unit return
type, which Kotlin 2.5 will require.

Replaces the Dependabot updates #5, #6 and #7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JKook-Plus
JKook-Plus merged commit e583426 into main Oct 9, 2026
1 check passed
@JKook-Plus
JKook-Plus deleted the deps/agp-9-migration branch October 9, 2026 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant