fix(release): keep Room DB impls so R8 doesn't crash startup
The minified release build crashed on every launch before any UI:
Unable to get provider androidx.startup.InitializationProvider:
Failed to create an instance of androidx.work.impl.WorkDatabase
The home-screen widgets use Glance, which pulls in WorkManager and its
transitive Room database (room-runtime 2.2.5). Room 2.2.5's bundled keep
rule is `-keep class * extends androidx.room.RoomDatabase` — it keeps the
class but not its constructor. Under R8 full mode (AGP 9) the generated
WorkDatabase_Impl was reduced to a non-instantiable class, so Room's
reflective newInstance() threw InstantiationException at startup.
Add `-keep class * extends androidx.room.RoomDatabase { *; }` so the
generated *_Impl classes keep their constructors. Verified against the
rebuilt release APK: WorkDatabase_Impl is now PUBLIC FINAL with its
<init> present.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user