ThreeDSecure CardinalEnvironment NoClassDefFoundError: Failed resolution
See original GitHub issueGeneral information
- SDK/Library version: 3.7.0
- Environment: Sandbox
- Android Version and Device: Google Pixel 2 with Android 10
- Braintree dependencies: ‘com.braintreepayments.api:braintree:3.7.0’
Test card used: https://developers.braintreepayments.com/guides/3d-secure/testing-go-live/ruby “Successful Challenge Authentication” Visa
- 4000000000001091
- 01/20**
- CVC: 123
Issue description
Right after nonce was received from the server the 3DSecure initialization fails.
val secureRequest = ThreeDSecureRequest().nonce(validation.cardNonce) .amount(validation.amount.toShortString(2)) .versionRequested(ThreeDSecureRequest.VERSION_2) ThreeDSecure.performVerification(brainTreeFragment, secureRequest)
SDK crashes:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/cardinalcommerce/cardinalmobilesdk/enums/CardinalEnvironment; at com.braintreepayments.api.ThreeDSecure.configureCardinal(ThreeDSecure.java:360) at com.braintreepayments.api.ThreeDSecure.access$100(ThreeDSecure.java:46) at com.braintreepayments.api.ThreeDSecure$4.onConfigurationFetched(ThreeDSecure.java:223) at com.braintreepayments.api.BraintreeFragment$14.run(BraintreeFragment.java:829) at com.braintreepayments.api.BraintreeFragment.postOrQueueCallback(BraintreeFragment.java:752) at com.braintreepayments.api.BraintreeFragment.waitForConfiguration(BraintreeFragment.java:821) at com.braintreepayments.api.ThreeDSecure.performVerification(ThreeDSecure.java:188) at com.braintreepayments.api.ThreeDSecure.performVerification(ThreeDSecure.java:162)
Issue Analytics
- State:
- Created 4 years ago
- Reactions:1
- Comments:8 (3 by maintainers)
Top GitHub Comments
Hey @sestevens, thanks for getting back.
Yes the linked maven repository is listed under an other maven repository (jitpack) in the top level build gradle file.
I’ve checked and until version 3.5.0 everything works. However I have the same issue with 3.6.0
The correct thing to do here is if your have a dependency, is make sure the POM file that is being generated and uploaded to maven central, specifies all the dependencies that are needed. This way they are automatically brought in. Otherwise people will keep running into this issue and have to try to find it in the docs.