Rive.init() throws UnsatisfiedLinkError: dlopen failed - librive-android.so has invalid shdr offset/size
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start at Rive.kt:57 and the ReLinker loading path shown in the stack trace, then compare it with the call from BackgroundThreadInitialisation.kt:242. Investigate why librive-android.so can reach System.load with an invalid ELF section header on the reported Android device. Done means the crash cause is identified and a reliable fix or mitigation is verified against native-library loading.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Submission checklist
- I have confirmed the issue is present in the latest version of
rive-android - I have searched the documentation and forums and could not find an answer
- I have searched existing issues and this is not a duplicate
Description
Rive.init() throws a fatal java.lang.UnsatisfiedLinkError when loading librive-android.so, with the specific message has invalid shdr offset/size: 4404512/1160. This indicates the ELF section header table of the extracted native library is corrupted/malformed on-device. The load is delegated through ReLinker (ReLinkerInstance.loadLibrary → System.load → dlopen). Full stack trace:
Fatal Exception: java.lang.UnsatisfiedLinkError:
dlopen failed: "/data/data/in.swiggy.android/app_lib/librive-android.so" has invalid shdr offset/size: 4404512/1160
at java.lang.Runtime.load0(Runtime.java:928)
at java.lang.System.load(System.java:1621)
at com.getkeepsafe.relinker.SystemLibraryLoader.loadPath(SystemLibraryLoader.java:31)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:206)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:92)
at app.rive.runtime.kotlin.core.Rive.init(Rive.kt:57)
at in.swiggy.android.application.BackgroundThreadInitialisation.init(BackgroundThreadInitialisation.kt:242)
at in.swiggy.android.application.BackgroundThreadInitialisation.doInitialise(BackgroundThreadInitialisation.kt:201)
at in.swiggy.android.CommonAppApplication.initSdksInBackGroundThread$lambda$0(CommonAppApplication.java:378)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Rive.init() is called once, on a background thread, during app startup — never on the main thread.
Previous working version
No response
Reproduction steps / code
/*Not minimally reproducible locally — this is storage/extraction-corruption-dependent, not a deterministic code path. Init call site:
*/
Rive.init(context = app.applicationContext, defaultRenderer = RendererType.Rive)
/*Called from BackgroundThreadInitialisation.kt:242, itself called from doInitialise() on a background ThreadPoolExecutor worker during CommonAppApplication startup.
*/
Upload your reproduction files / stack trace
Source .riv / .rev file
No response
Screenshots / video
No response
Rive Android runtime version
11.1.2
Rive API
Both
Device
Redmi 8A Dual
Device OS
Android 9+
App minimum SDK level
No response
App target SDK level
No response
App NDK level
No response
Other Rive runtimes affected
No response
Dependencies with native libraries
No response
Additional context
No response
- Lingua principale
- Kotlin
- Stelle
- 543
- Fork
- 68
- Merge medio
- 19m
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rive-app/rive-android
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
rive-app/rive-android#475 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
rive-app/rive-android#471 ·
-
SIGSEGV in libGLESv2_mtk.so on FCNT arrows We2 devicesForse già presa @ErikUggeldahl l’ha presa 20 giorni fa. Apertabug confirmed
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
rive-app/rive-android#468 · 6 commenti · 3 reazioni · 1 assegnatario ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
rive-app/rive-android#462 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
rive-app/rive-android#461 · 1 commento · 1 reazione ·
Tutte le issue di rive-app/rive-android
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
SLNE-Development/surf-chat#134 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100