4.0.1 — R8 fix for release builds
Patch release covering two issues uncovered while testing 4.0.0 against
a real consumer's R8-minified release build, plus translations for the
new autocomplete strings shipped in 4.0.0. No public API changes —
drop-in upgrade from 4.0.0.
🐛 Fixes
- Release build crashed on
Places.createClientwith
NoSuchMethodException/ServiceConfigurationError. Root cause:
the Places SDK 5.x reflectively instantiates its internal classes
via two paths — protobuf reflection (on proto messages that extend
zzbdq) and JDKServiceLoader(for gRPC name resolvers and
similar SPI providers). The SDK's shippedproguard.txtonly keeps
the proto subclass fields, so R8 strips the constructors and the
consumer's release build fails on startup. PING now ships a consumer
proguard rule that keeps every constructor of every internal Places
SDK class. Consumers get the fix automatically.
🌍 i18n
- Translate the two new
picker_autocomplete_*strings (search hint
and close-button content description) added in 4.0.0 into all 9
supported locales: ar, ca, cs, de, es-rES, ko-rKR, pt, tr, zh-rTW.
🧹 Internal cleanup
- Drop the now-unused
kotlin-parcelizeplugin (last user was
CustomPlace, removed in 4.0.0). With parcelize gone, also drop the
explicitkotlin-androidplugin and theandroid.builtInKotlin/
android.newDslopt-outs ingradle.properties— we're now on
AGP 9's built-in Kotlin support with no opt-outs.
📦 Install
dependencies {
implementation("com.google.android.libraries.places:places:5.1.1")
implementation("com.github.rtchagas:pingplacepicker:4.0.1")
}Anyone on 4.0.0 with minifyEnabled = true should upgrade — release
builds will crash on startup without this patch.