Skip to content

App crash due to missing libraries for x86, armeabi-v7a, armeabi #341

Open

Description

@shakil-bin-karim

Description

We are encountering a crash in our Android app for some phones when using the Rive Android library. The app crashes on startup with the following error:

androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librive-android.so'. Looked for: [x86, armeabi-v7a, armeabi], but only found: [arm64-v8a].

This indicates that the librive-android.so native library is missing for certain architectures, specifically x86, armeabi-v7a, and armeabi. The app only includes the library for the arm64-v8a architecture.

Provide a Repro

The crash occurs when running the app on devices with architectures other than arm64-v8a, such as armeabi-v7a or x86.

Steps to reproduce the issue:

  1. Integrate the Rive Android library into your Android app.
  2. Build and run the app on device with an armeabi-v7a or x86 architecture.
  3. Observe that the app crashes on startup with the missing library error.

Source .riv/.rev file

N/A – The issue occurs during app initialization, before any .riv files are loaded.

Expected behavior

The app should start without crashing, and the librive-android.so library should be correctly loaded for all supported architectures (armeabi-v7a, arm64-v8a, x86, etc.).

Screenshots

N/A

Device & Versions (please complete the following information)

  • Device: Various devices with devices with no arm64-v8a architecture from manufactures like ZTE, Oppo, Older Samsung devices, etc.
  • SDK Level: Android SDK API Level 35

Additional context

Here are the full stack traces from Firebase Crashlytics:

Fatal Exception: java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librive-android.so'. Looked for: [x86, armeabi-v7a, armeabi], but only found: [arm64-v8a].
       at android.app.ActivityThread.installProvider(ActivityThread.java:5927)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:5516)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5455)
       at android.app.ActivityThread.-wrap2(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1550)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6190)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:892)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
Caused by androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librive-android.so'. Looked for: [x86, armeabi-v7a, armeabi], but only found: [arm64-v8a].
       at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
       at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
       at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
       at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:1751)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:1726)
       at android.app.ActivityThread.installProvider(ActivityThread.java:5924)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:5516)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5455)
       at android.app.ActivityThread.-wrap2(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1550)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6190)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:892)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
Caused by com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librive-android.so'. Looked for: [x86, armeabi-v7a, armeabi], but only found: [arm64-v8a].
       at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:175)
       at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
       at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
       at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
       at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:51)
       at app.rive.runtime.kotlin.core.Rive.init(Rive.kt:42)
       at app.rive.runtime.kotlin.core.Rive.init$default(Rive.kt:37)
       at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:34)
       at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:32)
       at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
       at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
       at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
       at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:1751)
       at android.content.ContentProvider.attachInfo(ContentProvider.java:1726)
       at android.app.ActivityThread.installProvider(ActivityThread.java:5924)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:5516)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5455)
       at android.app.ActivityThread.-wrap2(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1550)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6190)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:892)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)

Activity

  1. sherbaev commented on Sep 24, 2024

    @sherbaev

    I am facing the same issue with mainly google phones

    Screenshot 2024-09-24 at 09 19 52

    Screenshot 2024-09-24 at 09 18 05

  2. evarouss commented on Oct 4, 2024

    @evarouss

    Hello, same here.

    Crash is not limited to Google Phones.
    The main problem is that the crash occurs on the emulators used by Google to review apps. As a consequence our app keeps being rejected because of this issue.

    image

    @sherbaev @shakil-bin-karim were you able to troubleshoot or mitigate the issue ?

  3. JohnEstropia commented on Oct 7, 2024

    @JohnEstropia

    I'd like to bump this again as it is blocking Android submissions for us. Any Rive devs here that could give us a status?

  4. DJPretorius commented on Dec 3, 2024

    @DJPretorius

    I've had the same issue since September 2023 (my comments here).
    This is not just limited to Emulators and happens on all Android versions. I'm currently using this library app.rive:rive-android:8.3.0. This is currently the most occurring crash on my Firebase Crashlytics.

    @umberto-sonnino or @mjtalbot please can you offer some assistance.

  5. added a commit that references this issue on Feb 15, 2025
  6. umberto-sonnino commented on Feb 21, 2025

    @umberto-sonnino
    Contributor

    Hi all,
    Could you please point us to specific device models that consistently reproduce this crash? In fact, we've tested on a Samsung A13 with an armeabi-v7a ABI, and our example app starts and runs without issues, which suggests the problem isn't universally affecting all armeabi-v7a devices.

    We'd like to get to the bottom of this - could you provide:

    • The exact device model and Android version where you're experiencing crashes
    • Whether you're using any specific build configurations that might affect ABI selection
    • Confirm whether the crash is happens in our example app in this repo or, alternatively, give us a minimal sample project that demonstrates the issue

    We're looking at #355 and potentially integrating the contribution, but we're going to need to validate it first

  7. shakil-bin-karim commented on Feb 25, 2025

    @shakil-bin-karim
    Author

    @DatL4g It seems one device where the crash occurs is Galaxy Feel.
    https://www.docomo.ne.jp/support/product/sc04j/spec.html

    I am not entirely sure, but this issue may be more prevalent in Samsung devices using Exynos processors.
    Any non qualcom processor maybe possible suspect as weel.

  8. ErikUggeldahl commented on Feb 26, 2025

    @ErikUggeldahl
    Collaborator

    Hi @shakil-bin-karim, @sherbaev, @evarouss, @JohnEstropia, @DJPretorius. Firstly, thank you all for your reports and confirmations. I'm the lead Android engineer at Rive, and I'm looking into this.

    When we build Rive, we build with 4 ABIs: x86, x86_64, armeabi-v7a, and arm64-v8a. Technically the first two could be dropped as in practice no Android devices in market use x86. They are specified in our build.gradle - abiFilters. They are ultimately bundled in the .aar. Google Play then filters the correct version to the device at the time of download, assuming you're uploading as an Android App Bundle (.aab).

    For any given version, you can inspect that all 4 ABIs are available. For instance I'm seeing that @DJPretorius mentioned 8.3.0. By navigating to our Maven repository's versions, clicking "Browse" next to the given version, and downloading the .aab, the extension can be changed to .zip and unzipped. Inside you'll find the jni folder, which should have all 4 ABIs as sub-folders, each with libc++_shared.so (the C++ standard library) and librive-android.so. These shared object files are linked at runtime with ReLinker, which we use for linking as we support API 21 - they explain the rationale here.

    As for why you're all seeing these errors - I'm not sure. One thing to check is to ensure you're not excluding ABIs in your app's build.gradle, either with:

    android {
      splits {
        abi {
          include ...
        }
      }
    }
    

    or

    android {
      defaultConfig {
        ndk {
          abiFilters ...
        }
        externalNativeBuild {
          cmake {
            abiFilters ...
          }
        }
      }
    }
    

    Additionally, it would be helpful to know which versions you're running on. Let me know if this information helps - we'll look to get to the bottom of this.

  9. isles1217 commented on Mar 25, 2025

    @isles1217

    This is also impacting our app, but we caught it on a Testing track before deploying to production. The only crash we're seeing here is on Android 12, Google Pixel 12 Pro. We're not doing anything related to any NDK or ABIs in our gradle setup.

    Stack trace (our app name and class's replaced with example:

    Fatal Exception: java.lang.RuntimeException
    Unable to create application com.example.app: com.google.crypto.tink.internal.v: Z2.L: Could not find 'librive-android.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
              Fatal Exception: java.lang.RuntimeException: Unable to create application com.example.app.ExampleApp: com.google.crypto.tink.internal.v: Z2.L: Could not find 'librive-android.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6767)
    
    
    Caused by com.google.crypto.tink.internal.v
    Z2.L: Could not find 'librive-android.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
              Caused by com.google.crypto.tink.internal.v: Z2.L: Could not find 'librive-android.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
           at androidx.startup.StartupException.<init>(StartupException.java:34)
           at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
           at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:138)
           at androidx.startup.AppInitializer.initializeComponent(AppInitializer.java:117)
    
  10. shakil-bin-karim commented on Jul 1, 2025

    @shakil-bin-karim
    Author

    @ErikUggeldahl
    Sorry for the late response.
    We are not excluding ABIs in our App's build.gradle.

  11. slai47 commented on Jul 8, 2025

    @slai47

    We have also run into something similar to this but its because of other libraries effecting another .so file. We have found the S24 and A13 have issues loading up the librive-android.so file and won't ever show the animations running. We have had to build out fallback images to prevent the crash on certain devices. This might be a DLL-**** issue with other libraries or your own app.

    For us, we have a design system library that houses rive and our parent app uses that library to run animations it has. We have tried resolution strategies, updating our own libraries that have similar .so files and tried loading the library manually ourselves. Still fails on some devices. Especially the A13. We are out of ideas.

  12. EpariNigam commented on Dec 2, 2025

    @EpariNigam

    @ErikUggeldahl We are also seeing this, but largely on Vivo devices.

  13. lmozen commented on Jan 23, 2026

    @lmozen

    Get similar crash after bumping Rive to 11.1.0

    java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'libandroid.so'. Looked for: [armeabi-v7a, armeabi], but only found: [].
        at android.app.ActivityThread.installProvider(ActivityThread.java:6407)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5909)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5826)
        at android.app.ActivityThread.-wrap1(:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1708)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:6662)
        at java.lang.reflect.Method.invoke(Method.java)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
    androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'libandroid.so'. Looked for: [armeabi-v7a, armeabi], but only found: [].
        at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
        at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:239)
        at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:207)
        at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:49)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1927)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1902)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6395)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5909)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5826)
        at android.app.ActivityThread.-wrap1(:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1708)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:6662)
        at java.lang.reflect.Method.invoke(Method.java)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
    com.getkeepsafe.relinker.MissingLibraryException: Could not find 'libandroid.so'. Looked for: [armeabi-v7a, armeabi], but only found: [].
        at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:175)
        at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
        at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
        at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:92)
        at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:197)
        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 appinitializers.RiveInitializer.create(RiveInitializer.kt:19)
        at appinitializers.RiveInitializer.create(RiveInitializer.kt:11)
        at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
        at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:239)
        at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:207)
        at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:49)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1927)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1902)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6395)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5909)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5826)
        at android.app.ActivityThread.-wrap1(:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1708)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:6662)
        at java.lang.reflect.Method.invoke(Method.java)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
    

    And what's interesting crash happens (for now) only on devices below Android 10. For now devices with this problem are SM-J415FN with Android 9, SM-J510FN with Android 7.1.1 and Redmi 6 with Android 8.1.0

  14. Velord commented on Feb 6, 2026

    @Velord

    Lib version is "11.1.0". Before that upgrade crash was not present. Previous version is "10.5.1".

    Percentage of affected users is ~0.2. Crash mostly affects users of 9 version.

    Image

    Stack trace is:

              Caused by com.getkeepsafe.relinker.MissingLibraryException: Could not find 'libandroid.so'. Looked for: [armeabi-v7a, armeabi], but only found: [].
           at com.getkeepsafe.relinker.MissingLibraryException.<init>(MissingLibraryException.java:22)
           at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:175)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:92)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:197)
           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 app.rive.runtime.kotlin.core.Rive.init$default(Rive.kt:46)
           at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:38)
           at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:36)
           at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
           at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:239)
           at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:207)
           at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:49)
           at android.content.ContentProvider.attachInfo(ContentProvider.java:1952)
           at android.content.ContentProvider.attachInfo(ContentProvider.java:1927)
           at android.app.ActivityThread.installProvider(ActivityThread.java:6638)
           at android.app.ActivityThread.installContentProviders(ActivityThread.java:6147)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6062)
           at android.app.ActivityThread.access$2000(ActivityThread.java:225)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1802)
           at android.os.Handler.dispatchMessage(Handler.java:106)
           at android.os.Looper.loop(Looper.java:192)
           at android.app.ActivityThread.main(ActivityThread.java:7049)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:913)
    
  15. ErikUggeldahl commented on Feb 11, 2026

    @ErikUggeldahl
    Collaborator

    Hi @lmozen and @Velord. The stack trace you've both provided are notably different from the ones at the originating issue. In both of your cases, we're failing to find libandroid.so, not librive-android.so. The latter (our library) depends on the former (a system library).

    I can't think of any changes we would have made to the build system between 10.5.1 and 11.1.0 that would cause this to suddenly fail. The ReLinker initialization and CMake dependency definition remain the same, so that's puzzling.

    The real question I have is why libndroid.so is failing to resolve at all. As a system library, it should always be present.

    Do either of you have a local reproduction or are these reports from analytics?

  16. Velord commented on Feb 11, 2026

    @Velord

    These reports from analytics. Have not had local crash like that.

  17. lmozen commented on Feb 11, 2026

    @lmozen

    Same as @Velord, unfortunately only analytics

  18. PavlosTze commented on Feb 27, 2026

    @PavlosTze

    We are also experiencing the same issue, here are some logs and the devices breakdown:

    Caused by com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librive-android.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
           at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:175)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
           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:55)
           at app.rive.runtime.kotlin.core.Rive.init$default(Rive.kt:45)
           at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:42)
           at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:40)
           at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
           at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:138)
           at androidx.startup.AppInitializer.initializeComponent(AppInitializer.java:117)
           at com.getmimo.App.onCreate(App.kt:121)
           at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1211)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6765)
           at android.app.ActivityThread.access$1600(ActivityThread.java:253)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2090)
           at android.os.Handler.dispatchMessage(Handler.java:106)
           at android.os.Looper.loopOnce(Looper.java:201)
           at android.os.Looper.loop(Looper.java:288)
           at android.app.ActivityThread.main(ActivityThread.java:7881)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:568)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
    
    Image
  19. WonderCsabo commented on Mar 31, 2026

    @WonderCsabo

    We also see a similar issue on Crashlytics. Started to happen after upgrading from 10.5.2 to 11.1.2 . Here is the stacktrace:

    Caused by com.getkeepsafe.relinker.MissingLibraryException: Could not find 'libandroid.so'. Looked for: [armeabi-v7a, armeabi], but only found: [].
           at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:175)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:92)
           at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:197)
           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 app.rive.runtime.kotlin.core.Rive.init$default(Rive.kt:46)
           at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:38)
           at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:36)
           at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
           at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:239)
           at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:207)
           at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:49)
           at android.content.ContentProvider.attachInfo(ContentProvider.java:1949)
           at android.content.ContentProvider.attachInfo(ContentProvider.java:1923)
           at android.app.ActivityThread.installProvider(ActivityThread.java:7273)
           at android.app.ActivityThread.installContentProviders(ActivityThread.java:6813)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6699)
           at android.app.ActivityThread.access$2000(ActivityThread.java:273)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2020)
           at android.os.Handler.dispatchMessage(Handler.java:112)
           at android.os.Looper.loop(Looper.java:216)
           at android.app.ActivityThread.main(ActivityThread.java:7625)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
    
    Image Image
  20. tylernij commented on Apr 1, 2026

    @tylernij
    Contributor

    Just to be sure we didn't already fix this, is anyone experiencing this crash on the latest 11.3.1 runtime? We've been working on this one for quite some time.

  21. ronan-droid commented on Apr 14, 2026

    @ronan-droid

    Hey, still experiencing the same issue with version 11.3.2

  22. AnneKlapwijk commented on Sep 1, 2026

    @AnneKlapwijk

    Just to be sure we didn't already fix this, is anyone experiencing this crash on the latest 11.3.1 runtime? We've been working on this one for quite some time.

    Hey, still experiencing this on 11.6.1 and 11.1.2

    11.6.1:

    Fatal Exception: java.lang.RuntimeException
    Unable to get provider androidx.startup.InitializationProvider: io0: java.lang.UnsatisfiedLinkError: dlopen failed: library "librive-android.so" not found
    ...
    Caused by java.lang.UnsatisfiedLinkError
    dlopen failed: library "librive-android.so" not found
    app.rive.runtime.kotlin.core.Rive$NativeLoader.loadWithSystemLoader (Rive.kt:57)
    

    11.1.2:

    Fatal Exception: java.lang.RuntimeException
    Unable to get provider androidx.startup.InitializationProvider: com.google.android.gms.internal.measurement.o6: com.google.android.gms.internal.measurement.o6: Could not find 'librive-android.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
    ...
    com.getkeepsafe.relinker.MissingLibraryException.<init> (MissingLibraryException.java:22)
    com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary (ApkLibraryInstaller.java:175)
    com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal (ReLinkerInstance.java:180)
    com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary (ReLinkerInstance.java:136)
    com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary (ReLinkerInstance.java:92)
    app.rive.runtime.kotlin.core.Rive.init (Rive.kt:57)
    
    • OnePlus8Pro, Android 11
    • Pixel 6 Pro, Android 12
    • Huawei NOH-AN00, Android 12
    • Samsung SM-G998B, Android 15

    Reports from Crashlytics; no local reproduction

    Thanks for working on this one :)

  23. ErikUggeldahl commented on Sep 1, 2026

    @ErikUggeldahl
    Collaborator

    Hi @AnneKlapwijk. We were expecting this to be fixed as of 11.5.0, specifically with this commit. Without more information I'm not sure if we'll be able to get any traction on this.

    Do you have any supporting logs that might help? We added error logs that should give a bit more information when this occurs.

    Also, are you using the Play Store's on demand delivery for dynamic features, as described here? If so you may need to load the .so files yourself to resolve this.

  24. AnneKlapwijk commented on Sep 2, 2026

    @AnneKlapwijk

    Hi @ErikUggeldahl , thanks for your reply!

    We are not using Play Store's on demand delivery.

    As for the crashes in 11.6.1, they are currently only happening for a couple of users and only on these devices:

    • OnePlus8Pro, Android 11
    • Pixel 6 Pro, Android 12

    I couldn't reproduce the crash on my Pixel 6 Pro, Android 12 emulator, so I only have Crashlytics logs unfortunately.

    Here is the stacktrace
    Fatal Exception: java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: io0: java.lang.UnsatisfiedLinkError: dlopen failed: library "librive-android.so" not found
           at android.app.ActivityThread.installProvider(ActivityThread.java:7464)
           at android.app.ActivityThread.installContentProviders(ActivityThread.java:6976)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6747)
           at android.app.ActivityThread.access$1500(ActivityThread.java:256)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2091)
           at android.os.Handler.dispatchMessage(Handler.java:106)
           at android.os.Looper.loopOnce(Looper.java:201)
           at android.os.Looper.loop(Looper.java:288)
           at android.app.ActivityThread.main(ActivityThread.java:7870)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)
    
    Caused by io0: java.lang.UnsatisfiedLinkError: dlopen failed: library "librive-android.so" not found
           at androidx.startup.StartupException.<init>(StartupException.java:34)
           at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
           at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:239)
           at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:207)
           at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:49)
           at android.content.ContentProvider.attachInfo(ContentProvider.java:2404)
           at android.content.ContentProvider.attachInfo(ContentProvider.java:2374)
           at android.app.ActivityThread.installProvider(ActivityThread.java:7459)
           at android.app.ActivityThread.installContentProviders(ActivityThread.java:6976)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6747)
           at android.app.ActivityThread.access$1500(ActivityThread.java:256)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2091)
           at android.os.Handler.dispatchMessage(Handler.java:106)
           at android.os.Looper.loopOnce(Looper.java:201)
           at android.os.Looper.loop(Looper.java:288)
           at android.app.ActivityThread.main(ActivityThread.java:7870)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)
    
    
    Caused by java.lang.UnsatisfiedLinkError: dlopen failed: library "librive-android.so" not found
           at java.lang.Runtime.loadLibrary0(Runtime.java:1077)
           at java.lang.Runtime.loadLibrary0(Runtime.java:998)
           at java.lang.System.loadLibrary(System.java:1656)
           at app.rive.runtime.kotlin.core.Rive$NativeLoader.loadWithSystemLoader(Rive.kt:57)
           at app.rive.runtime.kotlin.core.Rive$NativeLoader.loadLibrary(Rive.kt:37)
           at app.rive.runtime.kotlin.core.Rive.init(Rive.kt:150)
           at app.rive.runtime.kotlin.core.Rive.init$default(Rive.kt:146)
           at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:38)
           at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:36)
           at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
           at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:239)
           at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:207)
           at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:49)
           at android.content.ContentProvider.attachInfo(ContentProvider.java:2404)
           at android.content.ContentProvider.attachInfo(ContentProvider.java:2374)
           at android.app.ActivityThread.installProvider(ActivityThread.java:7459)
           at android.app.ActivityThread.installContentProviders(ActivityThread.java:6976)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6747)
           at android.app.ActivityThread.access$1500(ActivityThread.java:256)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2091)
           at android.os.Handler.dispatchMessage(Handler.java:106)
           at android.os.Looper.loopOnce(Looper.java:201)
           at android.os.Looper.loop(Looper.java:288)
           at android.app.ActivityThread.main(ActivityThread.java:7870)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)
    

    I also looked at our released .aab: all base/lib folders contain librive-android.so and libc++_shared.so as expected.

    Would it help if we implemented RiveLog.logger to debug this issue? (https://rive.app/docs/runtimes/android/logging#compose)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions