Repository navigation
Exclave Next 0.17.58.2
Hotfix for 0.17.58.1.
Bug: in release builds every MaxMind database was rejected with
"Not a MaxMind database: No constructor on class kotlin.TuplesKt with the
MaxMindDbConstructor annotation was found" — both databases already on disk
and freshly downloaded ones (the update spinner ran, then nothing installed).
Cause: R8. 0.17.58.1 was the first release build that contained the GeoIP
database manager at all; debug builds never run R8, so the breakage was
invisible until now. R8 folded com.maxmind.db.Metadata and the geoip2
model/record classes into unrelated merge targets and stripped the
@MaxMindDbConstructor annotation attributes, which the MaxMind reader looks
up through runtime reflection.
Fix: keep-rules for com.maxmind.db / geoip2.model / geoip2.record plus
-keepattributes RuntimeVisibleAnnotations — verified in the shipped dex:
all classes present, annotation present, no merge residue.
Also: long database file names now truncate with a middle ellipsis instead
of wrapping mid-word ("GeoLite2-Country.mmd / b").