diff --git a/CHANGELOG.md b/CHANGELOG.md index 98bdf47..dc81524 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 anything Calendula can't represent (changed recurring occurrences, guest lists) is reported rather than silently dropped. +### Fixed +- Fixed the app crashing immediately on every launch in the optimized release + build: release code-shrinking (R8) was stripping a database class the + home-screen widget framework needs, so the app died at startup before showing + anything. Added the missing keep rule. + ## [2.6.0] — 2026-06-18 ### Added diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index dccc1da..dce5b77 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -4,3 +4,14 @@ # Compose Compiler may keep its own; defaults are fine -dontwarn org.jetbrains.annotations.** + +# Room database implementations (pulled in transitively via +# androidx.glance:glance-appwidget → androidx.work → androidx.room). +# The widgets rely on Glance, whose WorkManager backend stores state in a Room +# database. Under R8 full mode (AGP 9 default) the generated *_Impl subclasses +# of RoomDatabase lose their usable no-arg constructor / are marked abstract, +# so Room's reflective instantiation throws InstantiationException and the app +# crashes at startup with "Failed to create an instance of ...WorkDatabase". +# Keep the generated Room database implementations fully intact. +-keep class * extends androidx.room.RoomDatabase { *; } +-dontwarn androidx.room.paging.**