2012-05-20 17 views
5

Puse una aplicación en Play Store y mi amigo, que está ejecutando 4.0.3 en dos dispositivos, recibió el siguiente mensaje al intentar instalar mi aplicación: "su dispositivo no es compatible con esta versión "."su dispositivo no es compatible con esta versión"

Un dispositivo permite que se instale y el otro no. Permití API 3-15 y ambos dispositivos son 4.0.3. ¿Cuál es el problema?

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.snotyak.basicfuelcalcpro" 
    android:versionCode="2" 
    android:versionName="1.2.3" > 
    <uses-sdk 
     android:minSdkVersion="4" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <application 
     android:name=".CalcApp" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/MainTheme" > 
     <activity android:name=".CalcActivity" > 
     </activity> 
     <activity 
      android:name=".PrefsActivity" 
      android:label="@string/prefs_name" /> 
     <activity 
      android:name=".CalcTabView" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".AboutActivity"></activity> 
     <activity android:name=".HistoryActivity" /> 
     <activity android:name=".AnalysisActivity" /> 
    </application> 
</manifest> 
+0

Publica el AndroidManifest.xml y el dispositivo de nombre que tiene tu amigo. Tome nota especial de las etiquetas '' use-feature' 'y' permission' que tiene en su manifiesto. –

+0

Mi amigo tiene un Galaxy S2 (no funciona) y funciona en su Transformer Prime. – snotyak

+0

En este punto podría ser una restricción en la configuración de Android Market, podría haber filtrado accidentalmente el dispositivo de alguna manera. Mira mi publicación actualizada para más detalles. También intente mirar ADB mientras intenta instalar el apk para más detalles. Use el comando adb install Filename.apk para instalarlo en Galaxy. –

Respuesta

7

doble Vea la etiqueta <uses-feature> en su archivo AndroidManifest.xml. Parece que su aplicación requiere una característica que uno de los dispositivos no admite.

También debe comprobar para ver si tiene los siguientes declaró en su AndroidManifest.xml,

<uses-sdk 
    android:minSdkVersion="3" /> 

Usted quiere que su aplicación funcione para dispositivos con API y 3 anteriores (no APIs 3 a 15). El código anterior asegurará que su aplicación funcione con todos los dispositivos por encima de la API 3. Tenga en cuenta que generalmente no desea utilizar el atributo android:maxSdkVersion (si lo está usando actualmente).

+0

Dudoso que esta es la respuesta. Es un filtro de hardware que probablemente está causando la incompatibilidad. –

+0

Ahh, a la derecha ... no vi que ambos dispositivos funcionaran 4.0.3. En ese caso, necesitaría más información para determinar qué es exactamente lo que está mal ... –

+0

No tengo ninguna etiqueta . Me deshice de mi android: targetSdkVersion = "15" – snotyak

9

Siendo que los 2 dispositivos están en la misma versión, la explicación lógica que está causando el mensaje de incompatibilidad es que los dispositivos son diferentes y la aplicación está utilizando una característica que uno de ellos no admite. Mire su AndroidManifest.xml y preste mucha atención a las etiquetas uses-feature y uses-permission. La tienda de Google Play los usará para filtrar dispositivos que no son compatibles.

Por ejemplo, si tiene <uses-permission android:name="android.hardware.camera"> y uno de los teléfonos no tiene cámara, se filtrará. Debido a que la solicitud del permiso implica que su aplicación necesita una cámara para funcionar correctamente. Puede solucionar esto agregando <uses-feature android:name="android.hardware.camera" android:required="false" /> en su AndroidManifest.xml. Por supuesto, también necesitará un código para evitar que su aplicación intente acceder a la cámara cuando no esté disponible.

Mire esta página para obtener más información, Google Play Filters.

Google Play tiene una forma de indicar qué está causando que el dispositivo se filtre. Es muy escueto, pero vaya a la parte inferior de la página debajo de los dispositivos y seleccione Mostrar dispositivos y luego filtre para Galaxy para verificar que sea excluyente en función del manifiesto.

Google Play Filter

+0

Solo tengo y es necesario para mi aplicación:/ – snotyak

+0

Eso debería estar bien. Casi todos los dispositivos tienen memoria grabable. –

1

Me deshice de

<uses-sdk android:targetSdkVersion="15" /> 

y funciona ahora.

0

Siempre las cosas definidas en Manifest, Google Playstore filtra su aplicación a algunos dispositivos. Algo como:

  1. Declarado específico Target Sdk Version.
  2. Permiso de cámara definido (Va a filtrar dispositivos sin cámara)
  3. Utiliza la cámara de funciones.
  4. Dispositivo habilitado para SIM.
  5. Dispositivo con Wifi.
  6. Versión mínima del SDK.

Por lo tanto, debe tener en cuenta que debe alcanzar el máximo de dispositivos para su objetivo, debe desactivar algunas de las características y permisos.

Espero que esto te dé una idea sobre la publicación de la aplicación.

Cuestiones relacionadas