Skip to content

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

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

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