Make the release (R8) build pass

Enabling R8 in the previous commit surfaced two build issues; fixed here so
assembleDebug AND assembleRelease both succeed (verified on this machine:
Android Studio JBR 21 + SDK android-36).

- proguard-rules.pro: add `-dontwarn com.google.errorprone.annotations.**`.
  Tink (pulled in by androidx.security-crypto / EncryptedSharedPreferences)
  references compile-only Error Prone annotations that aren't on the runtime
  classpath, which R8 treated as fatal "missing class" errors.
- ApiClient.await(): @OptIn(ExperimentalCoroutinesApi::class) for the
  resume(value){ onCancellation } overload (experimental in coroutines 1.8.1).

Release APK is R8-shrunk (~1.8 MB vs ~18 MB debug). It is unsigned — wire a
signing config / keystore (kept out of VCS) before distributing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jon Vanvik 2026-05-31 17:48:45 +02:00
parent 41098831ae
commit af303d83c8
2 changed files with 7 additions and 0 deletions

View file

@ -33,3 +33,8 @@
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**
# ─── Tink / EncryptedSharedPreferences (androidx.security-crypto) ─────────────
# Tink references compile-only Error Prone annotations that aren't on the runtime
# classpath; they're not needed at runtime, so silence the missing-class errors.
-dontwarn com.google.errorprone.annotations.**