Repository navigation
PoPMobile v1.0.9
v1.0.7 misdiagnosed the Download-button crash as an R8 issue. The NoSuchMethodError still reproduced with minification disabled on the emulator this session, ruling that theory out.
Root cause
compose-bom 2024.01.00 ships material3 1.1.2 and animation-core 1.6.0 together. Material3's LinearProgressIndicator internally calls KeyframesSpecConfig.at(Object, Int) (new 1.6 generic signature), but the bundled animation-core doesn't expose that overload — producing:
java.lang.NoSuchMethodError: No virtual method at(Ljava/lang/Object;I)
Landroidx/compose/animation/core/KeyframesSpec$KeyframeEntity;
at androidx.compose.material3.ProgressIndicatorKt$LinearProgressIndicator
at com.proofofprints.popmobile.update.UpdateDialogKt.DownloadingBody
…the first time DownloadingBody tried to render after the user tapped Download.
Fix
Replace LinearProgressIndicator with a plain Box we draw ourselves. No KeyframesSpec, no internal animation, nothing to version-drift against. Visually identical (6 dp tall, rounded 3 dp, cyan fill on dark track), ~15 lines of code.
Version
versionCode 8 → 10 (skipping 9 to keep the broken v1.0.8 interim artifact distinguishable), versionName 1.0.7 → 1.0.9.
Test plan
-
./gradlew assembleReleasebuilds cleanly - Signed APK fingerprint matches
6c849abe… - Emulator on v1.0.7 → Settings → About → Check for updates → offers v1.0.9 → Download → progress bar fills (no crash) → install screen appears → install → app reopens as v1.0.9