El error más insoportable de Android: “Esta aplicación se desarrolló para usarse en una versión anterior”

“Esta aplicación se desarrolló para usarse en una versión anterior de Android y puede que no funcione correctamente” es el mensaje que muchos usuarios ven al instalar apps fuera de Google Play a partir de Android 12, una advertencia de Google Play Protect que apunta a la falta de protecciones de privacidad más recientes y que en muchas ocasiones es insufrible.
Cuando instalamos una APK antigua en un móvil moderno, el sistema comprueba su nivel de API objetivo y, si está más de dos versiones por debajo del Android instalado, nos avisa de que carece de las últimas mejoras de seguridad y privacidad. Esta medida pretende protegernos de apps que son realmente viejas, aunque a veces resulta molesta para quienes trabajan con software legacy o lo que es lo mismo, aplicaciones viejunas.
¿Por qué aparece el mensaje?
Android incluye desde la versión 12 un mecanismo de advertencias de Play Protect que detecta cuando una aplicación declara un targetSdkVersion muy inferior al nivel de API del dispositivo. Si, por ejemplo, tu móvil corre Android 13 (API 33) y tratas de instalar una app diseñada para API 29 o menos, verás la alerta indicando que la app no incorpora protecciones recientes. Qué es lo que tienes que saber realmente, pues que la app en cuestión es vieja, si aparece el mensaje es por ello.
Claro que esto significa que deberás pulsar “Instalar de todas formas” para continuar, aunque algunas capas de fabricante (Samsung, Xiaomi) pueden bloquear directamente la instalación. En el caso de los desarrolladores, ellos reciben reportes de instalaciones fallidas y reseñas negativas por parte de usuarios que no entienden el motivo real; además, Google Play exige ahora un targetSdkVersion mínimo para nuevas apps y actualizaciones recientes.
Más específicamente tener un targetSdkVersion bajo, significa que tiene una marca que informa sobre para cuál versión de Android se optimizó la app. Si está muy desfasada, el sistema no la considera compatible con las nuevas restricciones de permisos, y esto se hace para que no existan problemas de virus o distintos tipos de phishing.
Desde noviembre de 2022, todas las apps nuevas o actualizadas en Google Play deben apuntar al menos a la API 31 (Android 12) por lo que tendrán estas restricciones activadas.
Por otro lado, también tenemos la compatibilidad de framework, que significa esto, pues que los cambios en gestión de almacenamiento, permisos de ubicación y otros comportamientos pueden hacer que apps antiguas funcionen mal o expongan datos sensibles, por ello también se restringe todo lo relacionado con ello, y demás te aseguras de que tus datos no sean manipulados por terceros.
Cómo solucionarlo
En el caso hipotético de ser un desarrollador, o de que quieras informar a alguno, porque te encanta tu aplicación favorita, lo que hay que hacer es actualizar el targetSdkVersion en el build.gradle al nivel exigido por Google Play y probar la app en Android 12 y 13 para corregir posibles incompatibilidades con el sistema.
Para usuarios avanzados, también puedes intentar instalar manualmente vía ADB con la opción –bypass-low-target-sdk-block y, tras la advertencia, confirmar “Instalar de todas formas”. Esto hará que la app se instale y deje de molestar de una vez por toda, eso sí, en caso de que la app tenga vulnerabilidades, será cosa tuya.