Skip to content

libzstd-kmp.so: Crash in Android release building using okhttp-zstd:5.3.2 #9591

Description

@johnjohndoe

Environment

Steps to reproduce

  1. Prepare some release keystore
  2. Optionally add isDebuggable() to the release build type
  3. Build a release version of the fossgis-2026 flavor
  4. Install and run the app

Expected

  • App fetches data and runs

Observed

Fetch logs from a debug build

OkHttp        I  <-- 200 https://pretalx.com/fossgis2026/schedule/export/schedule.xml (1117ms)
OkHttp        I  access-control-allow-origin: *
OkHttp        I  alt-svc: h3=":443"; ma=2592000
OkHttp        I  content-encoding: zstd
OkHttp        I  content-security-policy: style-src 'self' 'unsafe-inline'; script-src 'self'; default-src 'self'; base-uri 'none'; img-src 'self' data:; form-action 'self'
OkHttp        I  content-type: text/xml
OkHttp        I  cross-origin-opener-policy: same-origin
OkHttp        I  date: Fri, 24 Jul 2026 11:57:03 GMT
OkHttp        I  etag: "1bbdcdc114ae556645d800a92173a209f929b49c-zstd"
OkHttp        I  referrer-policy: strict-origin-when-cross-origin
OkHttp        I  server: gunicorn
OkHttp        I  strict-transport-security: max-age=31536000; includeSubDomains; preload
OkHttp        I  vary: Cookie
OkHttp        I  vary: Accept-Encoding
OkHttp        I  via: 1.1 Caddy
OkHttp        I  x-content-type-options: nosniff
OkHttp        I  x-frame-options: DENY
OkHttp        I  <-- END HTTP
nativeloader  D  Load /data/app/~~0FFfM6a62T7TRZOZiPeDjw==/info.metadude.android.fossgis.schedule.debug-1Ykynrlv1D3tiajxtEU3og==/lib/arm64/libzstd-kmp.so using class loader ns clns-6 (caller=/data/app/~~0FFfM6a62T7TRZOZiPeDjw==/info.metadude.android.fossgis.schedule.debug-1Ykynrlv1D3tiajxtEU3og==/base.apk!classes31.dex): ok
FetchFahrplan D  ETag: '"1bbdcdc114ae556645d800a92173a209f929b49c-zstd"'
FetchFahrplan D  Last-Modified is missing
FetchFahrplan D  Fetch done successfully

Backend

Workaround

  • Add the following ProGuard/R8 rules
-keepclasseswithmembers,includedescriptorclasses class com.squareup.zstd.** {
    native <methods>;
}
-keepclassmembers class com.squareup.zstd.** {
    <fields>;
}
-keepnames class com.squareup.zstd.**

Question

  • Should theses rules be shipped with the artifact?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug in existing code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions