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

cannot be cast to kotlin.jvm.functions.Function0 #182

Open
mattwatson-dev opened this issue Jun 25, 2021 · 3 comments
Open

cannot be cast to kotlin.jvm.functions.Function0 #182

mattwatson-dev opened this issue Jun 25, 2021 · 3 comments

Comments

@mattwatson-dev
Copy link

Coding in java.

    loginButton.startAnimation();

...
loginButton.revertAnimation(new OnAnimationEndListener() { //*LoginActivity.java:54 below
@OverRide
public void onAnimationEnd() {
System.out.println("HIT");
}
});

 Caused by: java.lang.ClassCastException: com.example.app.LoginActivity$1 cannot be cast to kotlin.jvm.functions.Function0
    at br.com.simplepass.loadingbutton.customViews.ProgressButton$DefaultImpls.revertAnimation(ProgressButton.kt:76)
    at br.com.simplepass.loadingbutton.customViews.CircularProgressButton.revertAnimation(CircularProgressButton.kt:21)
    at com.example.app.LoginActivity.onCreate(LoginActivity.java:54) //This is the revert animation line above*
    at android.app.Activity.performCreate(Activity.java:8000)
    at android.app.Activity.performCreate(Activity.java:7984)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:223) 
    at android.app.ActivityThread.main(ActivityThread.java:7656) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 

Really enjoying your work!
Let me know if you can help.

@xitake
Copy link

xitake commented Feb 27, 2024

Coding in java.

    loginButton.startAnimation();

... loginButton.revertAnimation(new OnAnimationEndListener() { //*LoginActivity.java:54 below @OverRide public void onAnimationEnd() { System.out.println("HIT"); } });

 Caused by: java.lang.ClassCastException: com.example.app.LoginActivity$1 cannot be cast to kotlin.jvm.functions.Function0
    at br.com.simplepass.loadingbutton.customViews.ProgressButton$DefaultImpls.revertAnimation(ProgressButton.kt:76)
    at br.com.simplepass.loadingbutton.customViews.CircularProgressButton.revertAnimation(CircularProgressButton.kt:21)
    at com.example.app.LoginActivity.onCreate(LoginActivity.java:54) //This is the revert animation line above*
    at android.app.Activity.performCreate(Activity.java:8000)
    at android.app.Activity.performCreate(Activity.java:7984)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:223) 
    at android.app.ActivityThread.main(ActivityThread.java:7656) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 

Really enjoying your work! Let me know if you can help.

Did you find out how to fix this? I'm having the exact same problem using the latest version (2.3.0)

@leandroBorgesFerreira
Copy link
Owner

Hi

I'll investigate the problem.

Do you have a project where the problem can be reproduced? That would make my investigation much easier.

If not, can you post more code and more context about how you are using the library?

Thanks!

@xitake
Copy link

xitake commented Feb 28, 2024

Hi,

I found a workaround. As @mattwatson-dev stated, this problem happens when coding in Java instead of Kotlin.

The exception happens when passing either a lambda function or an OnAnimationEndListener instance to startAnimation:

circularProgressButton.startAnimation(() -> { Log.d("Minha Tag", "Just a log"); });

The workaround is to pass a Function0 instance instead:
circularProgressButton.startAnimation(new Function0() { @Override public Object invoke() { Log.d("Minha Tag", "Just a log"); } });

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