mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
After the Android 16 / AGP 8 / JDK 21 upgrades, opening the QR code scanner in the Buoy Pinger app crashed with NoClassDefFoundError for the internal GMS classes zzdkv / zzbgl when constructing BarcodeDetector.Builder. Root cause: play-services-maps:17.0.1 forced play-services-basement/base up to 17.0.0 in the Buoy Pinger graph, while play-services-vision stayed at 12.0.1. Vision 12.0.1 references internal classes that existed in basement 12.x but were removed in 17.0.0, so they fail to resolve at runtime. Race Manager was unaffected only because it pulls no maps dependency, keeping its whole GMS stack at 12.x. Fix (preserving minSdk 16 for old tracking/pinging hardware): - Bump play-services-vision 12.0.1 -> 19.0.0. Vision 19.0.0 depends on basement/base 17.0.0 (the versions maps 17.0.1 already pulls) and keeps minSdk 14; the BarcodeDetector API is unchanged, so no barcode code changes. - Bump play-services-location 12.0.1 -> 21.0.1 so Race Manager's fused-location calls do not hit the same basement mismatch once vision raises basement; it resolves to basement 18.1.0 (minSdk 14), consistent across all three apps. - Modernize WindFragment's deprecated LocationRequest API (create()/setPriority/ setInterval/setFastestInterval and LocationRequest.PRIORITY_HIGH_ACCURACY) to LocationRequest.Builder with Priority.PRIORITY_HIGH_ACCURACY. Verified: all three app modules (Buoy Pinger, Tracking, Race Manager) compile cleanly against the bumped versions, with no location deprecation warnings. Runtime QR scan not yet smoke-tested on a device. Assisted-By: Claude Opus 4.8 (claude-opus-5-5)