Skip to content

TInAppPurchase en Android de 64 bits, error y solución

En la versión de Delphi Rio 10.3.3 se ha encontrado un problema grave con el componente TInAppPurchase para el desarrollo de aplicaciones de Android 64 bits.

Y hasta que lancen una nueva versión o parche que soluciones dicho bug, mostramos una solución alternativa de fácil implementación.

Después del lanzamiento de RAD Studio 10.3.3, que incluye por primera vez la compatibilidad con Delphi para Android de 64 bits cumpliendo todos los requisitos para Google Play Store, muchos programadores informaron tener problemas al compilar aplicaciones que utilizan el componente TInAppPurchase generando un error tipo access violation.

Según informaron en el Blog Oficial de Embarcadero, han omitido uno de los pasos necesarios para la migración a 64 bits en ese componente, cambiar un tipo de datos de Cardinal (mismo tamaño en todas las plataformas) a NativeUInt (que es específico de la plataforma) utilizando el tipo TFmxHandle.

La solución para resolver este bug del componente TInAppPurchase de la versión de Delphi Rio 10.3.3 es muy sencilla y rápida de llevar a cabo.

Debes copiar la unidad FMX.Helpers.Android.pas que se encuentra de manera predeterminada en el path “C:\Archivos de programa(x86)\Embarcadero\Studio\20.0\source\fmx”, a la carpeta del proyecto, y cambie la línea 250 de esa unidad como sugerimos a continuación:

// Línea original
FTimerHandle: Cardenal;

// Cambiar por la siguiente línea
FTimerHandle: TFmxHandle;
Solución a error TInAppPurchase

Y con este simple paso ya tendremos la solución inmediata al error ocasionado en la unidad TInAppPurchase.