rive-android icon indicating copy to clipboard operation
rive-android copied to clipboard

I tried to run the sample app but I got Could not find 'libjnirivebridge.so'.

Open chanjungkim opened this issue 2 years ago • 1 comments

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) 

chanjungkim avatar Sep 30 '22 05:09 chanjungkim

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

umberto-sonnino avatar Oct 05 '22 12:10 umberto-sonnino

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

DJPretorius avatar Sep 19 '23 07:09 DJPretorius

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

Hi @DJPretorius, current version is 8.2.3, could you try upgrading to that? Also, how're you performing Rive initialization in your code?

umberto-sonnino avatar Sep 19 '23 07:09 umberto-sonnino

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)?

DJPretorius avatar Sep 19 '23 08:09 DJPretorius

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!

umberto-sonnino avatar Sep 21 '23 09:09 umberto-sonnino