plaid / plaid-link-android

Plaid Link Android SDK
https://plaid.com/docs/link/android
MIT License
114 stars 48 forks source link

Illegal cast exception on v3.6.1 #203

Closed ergindogan closed 2 years ago

ergindogan commented 2 years ago

The problem

I updated the version of plaid link from 3.2.2 to 3.6.1 and when I launch plaid link, it crashes immediately.

Environment

Android OS Version 11 (30)
Android Devices/Emulators Pixel 4XL physical

Expected Result

I would expect to be routed to login screen or intermediate screen if institution is using oauth.

Logs

    java.lang.ClassCastException: androidx.constraintlayout.widget.ConstraintLayout cannot be cast to android.widget.FrameLayout
        at com.plaid.internal.r4.onCreateView(SourceFile:3)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
        at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7664)
        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)
JeroenMols commented 2 years ago

Have you defined a layout with name plaid_loading_fragment.xml in your app?

It looks as if our SDK is inflating another layout (with ConstraintLayout) instead of the expected one (with FrameLayout). This could happen, because the Android Gradle plugin is merging all project resources and ends up overriding the layout in our SDK by one defined by your application.

ergindogan commented 2 years ago

Thank you, changing my file name actually resolved the issue.