stripe / stripe-android

Stripe Android SDK
https://stripe.com/docs/mobile/android
MIT License
1.29k stars 647 forks source link

[BUG] Duplicate class com.sumsub.sns:idensic-mobile-sdk #8227

Closed AnnaBitsUK closed 5 months ago

AnnaBitsUK commented 7 months ago

Summary

Hello, I have a compatibility issue with other libs in the app. Multiple libs depend transitively on the same lib with different versions I resolved the conflict towards the stripe, but I have a crash on one of the sumsub screens.

Installation method

gradle dependency

Dependency Versions

com.stripe:stripe-android:18.2.0 com.sumsub.sns:idensic-mobile-sdk:1.27.1

kotlin: 1.8.21 stripe-android: 18.2.0 Android Gradle Plugin: 8.3.1 Gradle: gradle-8.4-bin.zip

Other information

Sumsub com.sumsub.sns:idensic-mobile-sdk:1.27.1 com.sumsub.sns:idensic-mobile-sdk-ui:1.27.1 com.sumsub.sns:idensic-mobile-sdk-internal-core:1.27.1 org.jmrtd:jmrtd:0.7.34 org.bouncycastle:bcutil-jdk18on:1.71

Stripe com.stripe:stripe-android:18.2.0 com.stripe:payments-core:18.2.0 com.stripe:stripe-3ds2-android:6.1.2 org.bouncycastle:bcprov-jdk15to18:1.69

Without resolving the conflict, I can't build a project with an error

bcprov-jdk15to18:1.69 and jetified-bcprov-jdk18on-1.71 (org.bouncycastle:bcprov-jdk18on:1.71) Duplicate class org.bouncycastle.math.ec.custom.sec.SecP224K1Field found in modules jetified-bcprov-jdk15to18-1.69 (org.bouncycastle:bcprov-jdk15to18:1.69) and jetified-bcprov-jdk18on-1.71 (org.bouncycastle:bcprov-jdk18on:1.71)

And many other classes

Current resolution

configurations.all { c -> c.resolutionStrategy.eachDependency { DependencyResolveDetails dependency -> println dependency.requested.group if (dependency.requested.group == 'org.bouncycastle') { dependency.useTarget 'org.bouncycastle:bcprov-jdk15to18:1.69' } } }

Stripe works but I have a crash on one of the Sumsub screens.

Do you have a solution for sumsub compatibility? Thank you

seanzhang-stripe commented 7 months ago

It looks like org.bouncycastle:bcprov-jdk15to18 and org.bouncycastle:bcprov-jdk18on can't co-exist. I'm not sure if com.sumsub.sns:idensic-mobile-sdk:1.27.1 can use the same org.bouncycastle:bcprov-jdk15to18:1.69 that Stripe SDK uses. but you can try excluding org.bouncycastle:bcutil-jdk18on from com.sumsub.sns:idensic-mobile-sdk and see if it solves your problem.

dependencies {
    implementation('com.sumsub.sns:idensic-mobile-sdk:1.27.1') {
        exclude group: 'org.bouncycastle', module: 'bcutil-jdk18on'
    }
}
jaynewstrom-stripe commented 5 months ago

@AnnaBitsUK closing down since we haven't heard back, but please reopen if you're still having issues.