stripe / stripe-android

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

[BUG] Dependency conflict possibility between the cardscan and the TextWatcher native android interface #9115

Open dianaedv opened 3 weeks ago

dianaedv commented 3 weeks ago

Summary

Dependency conflict possibility between the cardscan and the TextWatcher native android class

Code to reproduce

The issue arises when just adding the implementation 'com.stripe:stripecardscan:version' dependency (version listed below) into the project.

Even without importing any module from the dependency in any part of the project, just simply adding it to the Gradle file, causes all the text fields that extend from the TextWatcher class implementation (https://developer.android.com/reference/android/text/TextWatcher) to break.

The crash occurs whether the text field is filled manually or automatically. For example, in the card number field with the mask ( ), the app crashes as soon as the first four characters are entered, returning the error log:

TextWatcherLogError.txt

Removing or comment up the deppendency of the card scan mentioned before, the text fields with TextWatcher works normally again, without crashing the app.

Example of a TextWatcher implementation.

CreditCardNumbersTextWatcher.txt

Android version

Android 11

Impacted devices

There aren't specific devices facing this problem.

Installation method

The SDK intallation method is thorught the gradle dependency, following the stripe-android integration doc:

implementation 'com.stripe:stripecardscan:version'

Dependency Versions

kotlin: 1.9.0 stripe-android: 20.48.3 and 20.48.0 Android Gradle Plugin: 7.4.2 Gradle: 7.5

SDK classes

SDK version 30

Video

Other information

jaynewstrom-stripe commented 3 weeks ago

Hi @dianaedv I'm not able to reproduce this. Would it be possible to create a sample project that demonstrates the crash?