Rive.init() throws UnsatisfiedLinkError: dlopen failed - librive-android.so has invalid shdr offset/size
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Kotlin
- Estrellas
- 543
- Forks
- 68
- Merge medio
- 19 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rive-app/rive-android
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
rive-app/rive-android#475 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
rive-app/rive-android#471 ·
-
SIGSEGV in libGLESv2_mtk.so on FCNT arrows We2 devicesPosiblemente ocupada @ErikUggeldahl la tomó hace 19 días. Abiertobug confirmed
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
rive-app/rive-android#468 · 6 comentarios · 3 reacciones · 1 asignado ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
rive-app/rive-android#462 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
rive-app/rive-android#461 · 1 comentario · 1 reacción ·
Todos los issues de rive-app/rive-android
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
rustyrazorblade/easy-db-lab#1017 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
callstack/react-native-brownfield#492 · 1 comentario ·
Los mantenedores suelen responder en 4 días
-
fix: retain the best partial noise-correction solutionPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
world-federation-of-advertisers/cross-media-measurement#4653 ·
Los mantenedores suelen responder en 1 día