Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No implementation found for long app.rive.runtime.kotlin.core.File.import(byte[], int) #301

Closed
leolr02 opened this issue Aug 27, 2023 · 3 comments

Comments

@leolr02
Copy link

leolr02 commented Aug 27, 2023

gradle version: 6.8.3

Rive version: app.rive:rive-android:5.0.0

kotlin gradle version: 1.8.0

Kotlin version: 1.7.1

I trying to load a Rive file animation from a raw folder via xml :

<app.rive.runtime.kotlin.RiveAnimationView
    android:id="@+id/loginBackground"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:riveResource="@raw/background"
    app:riveAutoPlay="true"
    app:riveFit="CONTAIN"
    app:riveLoop="LOOP"
    />

And init Rive in the Activity in onCreate function:
Rive.init(this)

Tha'ts my provider on Manifest file:

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

But when the app run, throws me this error:

No implementation found for long app.rive.runtime.kotlin.core.File.import(byte[], int) (tried Java_app_rive_runtime_kotlin_core_File_import and Java_app_rive_runtime_kotlin_core_File_import___3BI)

FATAL EXCEPTION: main
                                                                                                    Process: com.leolr.restomobile, PID: 21461
                                                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.leolr.restomobile/com.leolr.restomobile.activities.LoginActivity}: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class app.rive.runtime.kotlin.RiveAnimationView
                                                                                                    	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955)
                                                                                                    	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3090)
                                                                                                    	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1820)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                    	at android.os.Looper.loop(Looper.java:193)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:6758)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
                                                                                                    Caused by: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class app.rive.runtime.kotlin.RiveAnimationView
                                                                                                    Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class app.rive.runtime.kotlin.RiveAnimationView
                                                                                                    Caused by: java.lang.reflect.InvocationTargetException
                                                                                                    	at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                                    	at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
                                                                                                    	at android.view.LayoutInflater.createView(LayoutInflater.java:647)
                                                                                                    	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
                                                                                                    	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
                                                                                                    	at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
                                                                                                    	at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
                                                                                                    	at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                                                                                                    	at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                                                                                                    	at com.leolr.restomobile.databinding.ActivityLoginBinding.inflate(ActivityLoginBinding.java:80)
                                                                                                    	at com.leolr.restomobile.databinding.ActivityLoginBinding.inflate(ActivityLoginBinding.java:74)
                                                                                                    	at com.leolr.restomobile.activities.LoginActivity.onCreate(LoginActivity.kt:43)
                                                                                                    	at android.app.Activity.performCreate(Activity.java:7144)
                                                                                                    	at android.app.Activity.performCreate(Activity.java:7135)
                                                                                                    	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
                                                                                                    	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2935)
                                                                                                    	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3090)
                                                                                                    	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1820)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                    	at android.os.Looper.loop(Looper.java:193)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:6758)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
                                                                                                    Caused by: java.lang.UnsatisfiedLinkError: No implementation found for long app.rive.runtime.kotlin.core.File.import(byte[], int) (tried Java_app_rive_runtime_kotlin_core_File_import and Java_app_rive_runtime_kotlin_core_File_import___3BI)
                                                                                                    	at app.rive.runtime.kotlin.core.File.import(Native Method)
                                                                                                    	at app.rive.runtime.kotlin.core.File.<init>(File.kt:22)
                                                                                                    	at app.rive.runtime.kotlin.RiveAnimationView.loadFileFromResource(RiveAnimationView.kt:259)
2023-08-26 19:30:47.044 21461-21461 AndroidRuntime          com.leolr.restomobile                E  	at app.rive.runtime.kotlin.RiveAnimationView.<init>(RiveAnimationView.kt:219)

What I'm doing wrong? :(

@MKelman
Copy link

MKelman commented Aug 30, 2023

Seeing similar issue: Fatal Exception: java.lang.UnsatisfiedLinkError: No implementation found for long app.rive.runtime.kotlin.renderers.Renderer.constructor(boolean, int) (tried Java_app_rive_runtime_kotlin_renderers_Renderer_constructor and Java_app_rive_runtime_kotlin_renderers_Renderer_constructor__ZI)

version rive:app.rive:rive-android:8.2.2

@leolr02
Copy link
Author

leolr02 commented Aug 30, 2023

I found the solution, I change the following dependencies:

gradle version to 7.3.3

build:gradle(app)

buildToolsVersion "30.0.3"
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}

kotlinOptions {
    jvmTarget = "11"
}

rive to 'app.rive:rive-android:4.0.0'
initializer to "androidx.startup:startup-runtime:1.1.1"
kotlin stdlib to "org.jetbrains.kotlin:kotlin-stdlib:1.8.0"

build.gradle(AppName)

dependencies {
classpath 'com.android.tools.build:gradle:7.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0"
}

I hope that is useful for you

@umberto-sonnino
Copy link
Contributor

If you want to initialize Rive in a specific context, you can also call:

// YourRiveActivity.kt
class YourRiveActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    Rive.init(this)
    …
  }
}

I'm going to close this for now as it seems resolved.
I also recommend upgrading to the latest rive-android, currently we're at 8.2.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants