rive-android
rive-android copied to clipboard
I tried to run the sample app but I got Could not find 'libjnirivebridge.so'.
2022-09-30 14:00:30.987 21039-21039/app.rive.runtime.example E/AndroidRuntime: FATAL EXCEPTION: main
Process: app.rive.runtime.example, PID: 21039
java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'libjnirivebridge.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
at android.app.ActivityThread.installProvider(ActivityThread.java:8231)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7728)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7482)
at android.app.ActivityThread.access$1700(ActivityThread.java:310)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2281)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Caused by: androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'libjnirivebridge.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
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:2516)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2486)
at android.app.ActivityThread.installProvider(ActivityThread.java:8226)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7728)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7482)
at android.app.ActivityThread.access$1700(ActivityThread.java:310)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2281)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
Caused by: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'libjnirivebridge.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.ReLinker.loadLibrary(ReLinker.java:70)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:51)
at app.rive.runtime.kotlin.core.Rive.init(Rive.kt:30)
at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:33)
at app.rive.runtime.kotlin.RiveInitializer.create(RiveInitializer.kt:31)
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:2516)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2486)
at android.app.ActivityThread.installProvider(ActivityThread.java:8226)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7728)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7482)
at android.app.ActivityThread.access$1700(ActivityThread.java:310)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2281)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
I'm assuming you're trying to run the example app from a fresh clone of this repo. If that's the case, then the library needsto be built.
Try these steps:
git submodule update --init --recursive
cd cpp
./build.rive.for.sh -a [x86 | x86_64 | armeabi-v7a | arm64-v8a] # <- Pick the architecture you want to run on
I'm getting the exact same crash report on Firebase Console on a released app.
I'm using dependency app.rive:rive-android:4.2.0
with startup androidx.startup:startup-runtime:1.1.1
The user is using an Oppo A57 running Android 13
I'm getting the exact same crash report on Firebase Console on a released app. I'm using dependency
app.rive:rive-android:4.2.0
with startupandroidx.startup:startup-runtime:1.1.1
The user is using an Oppo A57 running Android 13
Hi @DJPretorius, current version is 8.2.3
, could you try upgrading to that?
Also, how're you performing Rive initialization in your code?
Wow, you have been busy in 2023. I'll give it a try but I unfortunately was not able to replicate this since this was reported by Firebase Crashlytics.
I initialise Rive using a provider in the Android manifest as in the documentation
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data android:name="app.rive.runtime.kotlin.RiveInitializer"
android:value="androidx.startup" />
</provider>
Is the libjnirivebridge.so
compiled for the architectures mentioned in the stack trace (arm64-v8a, armeabi-v7a, armeabi
)?
Wow, you have been busy in 2023. I'll give it a try but I unfortunately was not able to replicate this since this was reported by Firebase Crashlytics.
I initialise Rive using a provider in the Android manifest as in the documentation
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> <meta-data android:name="app.rive.runtime.kotlin.RiveInitializer" android:value="androidx.startup" /> </provider>
Is the
libjnirivebridge.so
compiled for the architectures mentioned in the stack trace (arm64-v8a, armeabi-v7a, armeabi
)?
Yes, although the name of the library in the latest iterations has been changed to librive-android.so
, I highly recommend the upgrade as it includes a lot of fixes and it supports all the newest Rive features, like Text, Events, as well as experimental support for our new blazingly fast renderer!