-
Notifications
You must be signed in to change notification settings - Fork 135
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
Android support below Android 8 #1281
Comments
Hi @jnischler, Thanks for reaching out to us with this issue. We were not aware of these version issues with Android, but I fully agree with you that it would make sense to be compatible with our own devices and their respective android versions. I created an internal ticket to review our dependencies and see whether we are able to downgrade some of them. We will keep you posted! Best, Jilling |
Hi @jillingk. Thanks for the update, Android does support Java 11 features through desugaring but only a subset: As of now we only noticed the 2 already mentioned problems. As an alternative to Jackson you could have a look at google gson: Or if you would like to boost performance then you could consider dsl-json: Another idea would be to consider creating a plain Kotlin library. If we can help in any way, feel free to reach out. Regards |
Hi @jnischler, Actually even though we mention java 11 on the readme, technically the library is still compatible with java 8 so that you don't have that to worry about! As for the serialization library, we actually specifically migrated away from GSON to Jackson as this was in our opinion the industry standard (by a small margin). What I would like to do however is see if I can downgrade our jackson dependencies so we're compatible with older android versions. We will try to pick this up asap. Kotlin library we've been thinking about for a while now. I will poke around and see if this is something we can build, however don't hold any hope as we might have other priorities for now :) I'll come back to you once I've managed to downgrade above mentioned dependencies! Best, Jilling |
Hi Jilling, Of course I understand just wanted to give you some hints :) We did test the library with an older Version of Jackson and everything worked for us. Regards |
Struggeling with the same issue. Managed to bypass the Jackson issue by excluding Jackson dependency from adyen-java-api lib, and including a version lower than 2.14 in app build file. However, the missing java.util.Base64 is still unsolved. Hoping for a fix soon. Edit: using Adyen S1E devices, running Android 7. |
to force gradle to always use a specific version of jackson we use this snipet:
|
Hey @DjoykeAbyah , @jillingk. Sorry for bother you again. Thanks, you very much. |
Hi @DjoykeAbyah @jillingk, |
Hi @maxmauthner, Thank you for your patience, and I apologize for the delay in getting back to you. We're currently investigating the issue to ensure we make the most sustainable choice. I'll keep you updated with any progress. Kind regards, Djoyke |
Hi @maxmauthner, @jnischler, and @runemart, We've downgraded the Jackson dependencies to ensure compatibility with Android 7. Regarding the java.util.Base64 import, we're currently exploring a sustainable solution to add support for Android 7. We'll keep you updated! Best regards, Djoyke |
Hi @maxmauthner, @jnischler and @runemart, I wanted to let you know we've just downgraded the dependency for Base64. link to pr! Kind regards, Djoyke |
Hi, @DjoykeAbyah this issue hasn't been fixed in v28.3.0 on Android.
I tried to force jackson's version which I am using in the project (2.13.1), but unsuccessfully. |
Hi @grossrichard, Sorry I see indeed we forgot to update both our Jackson dependencies. I've just now updated them both correctly and triggered our release so you should be able to check this works in release v28.3.1. Please keep us posted as to whether this works for you! Best, Jilling |
sorry for the delay. Thanks |
Hi @DjoykeAbyah, I got to test version 28.5.1 today, and it appears java.util.Base64 is used in ByteArrayToBase64TypeAdapter.java also, which causes crash (NoClassDefFoundError) on Android 7.
|
Hey,
we are using your library in one of our payment applications.
As we need local communication with your terminals, we need to use this library or at least the models locally.
In the past you made several changes preventing us from using newer versions of your library, as the used functions are not available on android.
So far, we identified at least two problems.
The Jackson version is too high.
See issue: FasterXML/jackson-databind#3658
2.14+ is no longer supported by Android Versions below 8.
We tried the library with an older Jackson version, and everything works just fine.
See: https://github.com/FasterXML/jackson-databind?tab=readme-ov-file#compatibility
As we have a lot of payment devices with android 7 we need to use at max Jackson 2.13.X.
Using gradle “resolutionStrategy.force” we can force the Jackson version to an older version.
We also identified another problem caused by the base64 functions used.
A wile ago you replaced the apache base64 library with java.utils.Base64.
891748f
java.utils.Base64 is only available from API Level 26+ (Android 8)
I fully understand that using older Version of a library might not be that modern but it also breaks support for older devices. Especially payment devices trend to not feature the latest android versions and therefore a lot of devices are still using Android 7 or even Android 5.
Just have a look at your own devices https://docs.adyen.com/point-of-sale/android-terminals/.
What is the recommended way to go?
Thanks and best regards
Julian
The text was updated successfully, but these errors were encountered: