After our release of RAD Studio 10.3.3, which includes for the first time Delphi Android 64-bit support, a few customers have reported issues when recompiling applications that use the TInAppPurchase component. When these applications are compiled for 64-bit Android and runtime, they raise an access violation.

You can see a couple of reports at https://quality.embarcadero.com/browse/RSP-27228 and https://quality.embarcadero.com/browse/RSP-27140.

These reports were escalated yesterday by two different customers, and we had our team have a look. It turns out we missed one of the required steps for migration to 64-bit in that component, namely shifting a data type from Cardinal (same size on all platforms) to NativeUInt (which is platform-specific). This is achieved by using the TFmxHandle type.

The workaround to address the issue is to make a copy of the FMX.Helpers.Android.pas file, part of the FMX sources (installed by default under C:Program Files (x86)EmbarcaderoStudio20.0sourcefmx), copy into the project folder, add it to the project, and change line 250 of that unit from

[crayon-6740029adfd21199132789/]

to:

[crayon-6740029adfd28415939651/]

You can see the code snippet in the image below. This addresses the problem (and we’ll include the fix in the next release of RAD Studio).