9 votos

¿Cómo obtener las verdaderas razones de una aplicación/.apk incompatible?

Play Store me dice: "Tu dispositivo no es compatible con esta versión".
Aurora Store me dice: "Descarga fallida" "App no soportada"

  1. Por qué ¿piensan estas tiendas que no es compatible?
  2. Si obtengo el archivo de paquete .apk de otro modo, ¿cómo puedo ver la lista de requisitos (incluido el nivel de API mínimo requerido)?

(Por cierto, la aplicación ( <a href="https://play.google.com/store/apps/details?id=de.tafmobile.mobility.leipzigmove" rel="noreferrer">de.tafmobile.mobility.leipzigmove </a>) que planteó estas preguntas y que me llevó horas instalar funciona perfectamente).

15voto

pr0nin Puntos 353

Algunas razones por las que una aplicación es incompatible pueden ser AndroidManifest.xml otras solo existen en la configuración de [Play] Store (como limitaciones a un país, un operador o si el desarrollador de la aplicación ha incluido ciertos dispositivos en la lista blanca por el motivo que sea).

AndroidManifest.xml

Versión mínima/máxima de Android

Volver AndroidManifest.xml . Si lo descifras utilizando una herramienta como apktool o Jadx-GUI primero debe comprobar la entrada minSdkVersion :

<uses-sdk android:minSdkVersion="30" android:targetSdkVersion="33"/>

En este ejemplo, la aplicación está restringida a Android 11 y versiones posteriores. En teoría, también puede haber una maxSdkversion pero las aplicaciones que tienen una entrada de este tipo son muy, muy raras.

Características del hardware

Las siguientes restricciones pueden venir de uses-feature entradas marcadas como android:required="true" :

<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>

Puede haber varias entradas para diferentes características de hardware como Bluetooth, cámara, etc. Si encuentra una entrada que tiene android:required="false" se trata de un requisito de hardware opcional, por lo que no debería importar si tu dispositivo lo admite o no. Puedes obtener la lista de características soportadas de tu teléfono usando el comando adb shell pm list features .

Bibliotecas compartidas necesarias

Las siguientes entradas relevantes son uses-libraries :

<uses-library android:name="org.apache.http.legacy" android:required="true"/>

De nuevo, al igual que para las características de hardware, estas entradas definen las bibliotecas de software que debe soportar tu teléfono. Puedes obtener la lista de librerías compartidas soportadas usando el comando adb shell pm list libraries .

Incluso si se trata de un requisito de software no es posible en los dispositivos no rooteados para instalar una biblioteca que falta. En los dispositivos rooteados es teóricamente posible añadir una biblioteca que falta, pero a menudo esas bibliotecas requieren ciertas características de hardware u otras bibliotecas (específicas del fabricante), por lo que añadirlas no suele ser posible.

Arquitectura de la CPU

Otra restricción muy importante es qué arquitecturas de CPU son compatibles con un APK. Por el momento hay cuatro arquitecturas de CPU relevantes:

  • armeabi-v7a alias armeabi (ARM 32 bits)
  • arm64-v8a (ARM 64 bits)
  • x86
  • x86_64

x86 y x86_64 sólo son relevantes para los emuladores, los dispositivos físicos con una de estas arquitecturas no han salido al mercado en los últimos 10 años. Puede comprobar qué arquitectura admite un APK consultando la etiqueta libs carpeta. Si esta carpeta no existe o no tiene subcarpeta, entonces no hay restricción de arquitectura. Para un APK dividido más reciente, tiene un archivo APK separado con la arquitectura en su nombre de archivo. En tal caso los archivos APK base (donde se almacenan las clases*.dex no tienen carpeta libs).

Puede comprobar las arquitecturas de CPU compatibles de su teléfono mediante el comando adb shell getprop ro.product.cpu.abilist .

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X