Pourquoi le Google Play Store indique-t-il que mon application Android est incompatible avec mon propre appareil?

91

J'hésite à poser cette question, car il semble que beaucoup de gens aient un problème similaire et pourtant je n'ai trouvé aucune solution qui résout mon cas particulier.

J'ai développé une application Android ( lien vers l'application réelle ) et l'ai téléchargée sur le Play Store. Le Play Store dit

"This app is incompatible with your XT Mobile Network HTC HTC Wildfire S A510b."

Bien sûr, c'est le téléphone sur lequel j'ai développé l'application, il doit donc être compatible. Certaines personnes avec d'autres appareils disent qu'il rapporte compatible, d'autres disent qu'il signale incompatible, mais je ne trouve aucune tendance. (Apparemment, je ne connais pas beaucoup de gens avec des appareils Android.)

J'ai essayé ce qui suit:

  • déplacer un fichier volumineux hors du res/rawrépertoire comme suggéré par cette réponse . Le seul fichier qui s'y trouvait était un fichier texte d'environ 700 Ko, mais je l'ai déplacé assets/sans changement apparent.

  • en ajoutant les deux assertions de fonctionnalités suivantes:

    <uses-feature android:name="android.hardware.faketouch" />
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
    

    pensant que mon téléphone ne prétend peut-être pas prendre en charge la android.hardware.touchscreenfonctionnalité habituelle , mais encore une fois, sans changement apparent.

Lors du téléchargement de l'APK sur le Play Store, le seul filtre qu'il signale comme actif est la android.hardware.faketouchfonctionnalité.

Ce qui suit est la sortie de aapt dump badging bin/NZSLDict-release.apk:

package: name='com.hewgill.android.nzsldict' versionCode='3' versionName='1.0.2'
sdkVersion:'4'
targetSdkVersion:'4'
uses-feature:'android.hardware.faketouch'
uses-feature-not-required:'android.hardware.touchscreen'
application-label:'NZSL Dictionary'
application-icon-160:'res/drawable/icon.png'
application: label='NZSL Dictionary' icon='res/drawable/icon.png'
launchable-activity: name='com.hewgill.android.nzsldict.NZSLDictionary'  label='NZSL Dictionary' icon=''
main
other-activities
supports-screens: 'small' 'normal' 'large'
supports-any-density: 'true'
locales: '--_--'
densities: '160'

et pour être complet, mon fichier manifeste:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.hewgill.android.nzsldict"
      android:versionCode="3"
      android:versionName="1.0.2">
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
    <uses-feature android:name="android.hardware.faketouch" />
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
    <application android:label="@string/app_name"
        android:icon="@drawable/icon">
        <activity android:name="NZSLDictionary"
                  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=".WordActivity" />
        <activity android:name=".VideoActivity" />
        <activity android:name=".AboutActivity" />
    </application>
</manifest> 

Dans la section «Disponibilité des appareils» du Play Store, je peux voir que tous les appareils HTC, y compris le Wildfire S, sont pris en charge à l'exception de «G1 (truite)» et «Touch Viva (opale)», quels qu'ils soient. En fait, je vois que "Wildfire S (marvel)" et "Wildfire S A515c (marvelc)" sont répertoriés comme pris en charge, mais mon "Wildfire S A510b" n'est pas spécifiquement mentionné. Ce type d'identifiant de sous-modèle peut-il avoir autant d'importance? J'ai pu télécharger plusieurs autres applications de Google Play sur mon téléphone sans aucun problème.

La seule chose que je n'ai pas faite à ce stade est d'attendre 4 à 6 heures après le téléchargement de la dernière version (comme dans ce commentaire ) pour voir si elle dit toujours qu'elle est incompatible avec mon téléphone. Cependant, la page Play Store affiche actuellement 1.0.2 qui est la dernière que j'ai téléchargée.

Greg Hewgill
la source
Quelque chose qui m'a beaucoup aidé avec les problèmes liés au téléphone a été de configurer ACRA: code.google.com/p/acra Je l'exécute au premier démarrage de l'application pour afficher toutes les spécifications d'un téléphone et utiliser la handleSilentExceptionméthode pour générer un rapport silencieux. Il vous indiquera au moins sur quel matériel l'application travaille.
Gavin Miller
2
@GavinMiller: Merci, mais je ne suis pas sûr que cela aidera lorsque le Play Store refuse du tout de livrer l'application.
Greg Hewgill
Peut-être ai-je mal compris votre commentaire: "Certaines personnes avec d'autres appareils disent qu'il rapporte compatible, d'autres disent qu'il signale incompatible, mais je ne trouve aucune tendance." Si de nombreuses personnes que vous ne connaissez pas peuvent télécharger et installer l'application, vous pouvez collecter un plus grand pool de données matérielles pour essayer de former une tendance. Ainsi atténuant le "Je ne connais pas beaucoup de gens avec des appareils Android." problème.
Gavin Miller
@GavinMiller: Cependant, cela ne me dira que les appareils sur lesquels Google Play pense pouvoir être installé et ne donnera aucune information sur les appareils sur lesquels Google Play pense qu'il ne peut pas être installé. En outre, même savoir avec certitude quels appareils fonctionnaient et lesquels ne l'étaient pas, ne m'aiderait pas vraiment à résoudre ce problème.
Greg Hewgill
vérifier cette solution, cela fonctionne pour moi stackoverflow.com/a/14020303/3392323
SAndroidD

Réponses:

84

La réponse semble être uniquement liée à la taille de l'application. J'ai créé une simple application "hello world" sans rien de spécial dans le fichier manifeste, je l'ai téléchargée sur le Play Store et elle a été signalée comme compatible avec mon appareil.

Je n'ai rien changé dans cette application, sauf pour ajouter plus de contenu dans le res/drawablerépertoire. Lorsque la .apktaille a atteint environ 32 Mo, le Play Store a commencé à signaler que mon application était incompatible avec mon téléphone.

Je vais tenter de contacter l'assistance aux développeurs de Google et demander des précisions sur la raison de cette limite.

MISE À JOUR : Voici la réponse de l'assistance aux développeurs Google à ce sujet:

Merci pour votre note. Actuellement, la taille maximale des fichiers pour une application téléchargée sur Google Play est d'environ 50 Mo.

Cependant, certains appareils peuvent avoir une partition de cache inférieure à 50 Mo, rendant l'application indisponible pour le téléchargement des utilisateurs. Par exemple, certains des appareils HTC Wildfire sont connus pour avoir des partitions de cache de 35 à 40 Mo. Si Google Play est en mesure d'identifier un appareil dont le cache n'est pas suffisamment grand pour stocker l'application, il peut empêcher son apparition pour l'utilisateur.

J'ai fini par résoudre mon problème en convertissant tous les fichiers PNG en JPG, avec une petite perte de qualité. Le .apkfichier fait maintenant 28 Mo, ce qui est inférieur au seuil que Google Play applique pour mon téléphone.

J'ai également supprimé toutes les <uses-feature>choses, et j'ai maintenant juste ceci:

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
Greg Hewgill
la source
Informations très intéressantes et précieuses. Et si ennuyeux que cela n'est documenté nulle part.
Michael A.
2
En effet, je n'aurais même jamais connu le problème si je n'avais pas de téléphone Wildfire.
Greg Hewgill
J'ai 3 jeux: 32 Mo, 35 Mo et 44 Mo de taille. Mon propre HTC bravo voit les deux premiers jeux et ne voit pas le troisième sur la boutique. Le HTC Desire S de mon ami ne voit que le premier jeu. Donc, apparemment, la taille des jeux devrait être inférieure à 33 Mo environ pour être visible par la plupart des appareils (?). Malheureusement, j'ai vu cette réponse trop tard et je n'ai pas été au courant du problème pendant des mois ... J'étais sûr que cela dépend du type de processeur de l'appareil, de la version OpenGL prise en charge, des limitations définies dans le manifeste ou autre. Soupir ..
iseeall
7
Il est insensé que Google n'énumère pas la raison de l'incompatibilité sur le Play Store. J'ai toujours supposé qu'au moins les développeurs d'applications auraient reçu ces informations et auraient consciemment choisi de ne pas prendre en charge mon appareil. Comment la situation est-elle restée comme ça pendant si longtemps?
Gerry
1
@GregHewgill Bonjour Greg. J'ai contacté l'assistance Google pour un problème similaire. Comme la taille de mon application n'était que de 5 Mo, je cherchais différentes options pour lesquelles Google Play filtrait mon application sur un appareil particulier. Cela fait 72 heures que je les ai contactés et ils ne sont revenus avec aucune explication. Puis-je contacter l'assistance Google d'une manière autre que la procédure normale de contact?
hemanth kumar
15

J'ai également rencontré cela - j'ai fait tout mon développement sur un Lenovo IdeaTab A2107A-F et j'ai pu exécuter des versions de développement dessus, et même publier des APK signés (installés avec adb install) sans problème. Une fois qu'il a été publié en mode test Alpha et disponible sur Google Play, j'ai reçu le message d'erreur "incompatible avec votre appareil".

Il s'avère que j'avais placé dans mon texte AndroidManifest.xmlce qui suit à partir d'un tutoriel:

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />

Eh bien, le Lenovo IdeaTab A2107A-F n'a pas d'appareil photo autofocus (ce que j'ai appris de http://www.phonearena.com/phones/Lenovo-IdeaTab-A2107_id7611 , sous Inconvénients: manque d'appareil photo autofocus). Que j'utilise cette fonctionnalité ou non, Google Play a refusé. Une fois que cela a été supprimé, j'ai reconstruit mon APK, je l'ai téléchargé sur Google Play et, bien sûr, mon IdeaTab était maintenant dans la liste des appareils compatibles.

Alors, revérifiez chaque fois <uses-feature>que vous avez fait du copier-coller à partir de la vérification Web. Il y a de fortes chances que vous ayez demandé une fonctionnalité que vous n'utilisez même pas.

Joe
la source
3
Je vous remercie ! J'utilisais une autre <use-feature>: <uses-feature android: name = "android.hardware.camera2" /> Et à cause de cela, j'avais des appareils compatibles ZERO. J'ai supprimé la ligne et j'ai maintenant 10000.
Jack
Vous pouvez le configurer pour continuer à l'utiliser, mais pas en avoir besoin: <uses-feature android: name = "android.hardware.camera.autofocus" android: required = "false" />
DrChandra
<uses-feature android: name = "android.hardware.camera2" /> rend mon application incompatible et je n'ai donc pas pu trouver l'application sur le Playstore. Sauver ma vie
Anand Savjani
11

J'ai également rencontré ce problème lors du développement d'une application pour un client qui souhaitait avoir des vidéos hors ligne disponibles à partir de son application. J'ai écrit un article de blog expliquant pourquoi l'application sur laquelle j'ai travaillé pendant des mois ne s'afficherait pas dans le Play Store de mon appareil (l' article peut être trouvé ici ). J'ai trouvé la même chose que @Greg Hewgill trouvé: limitations de la partition de cache sur certains appareils .

Le voyage ne s'est pas arrêté pour moi là-bas. Le client voulait avoir ces vidéos dans l'application et ne voulait pas que la qualité de la vidéo soit diminuée. Après quelques recherches, j'ai compris que l' utilisation de fichiers d'extension était la solution parfaite à notre problème.

Pour partager mes connaissances avec la communauté Android, j'ai tenu une conférence à droidconNL 2012 sur les fichiers d'extension. J'ai créé une présentation et un exemple de code pour illustrer à quel point il peut être facile de commencer à utiliser des fichiers d'extension. Si vous souhaitez utiliser des fichiers d'extension pour résoudre ce problème, n'hésitez pas à consulter l'article contenant la présentation et l'exemple de code.

Ali Derbane
la source
4
Le lien d'assistance Google mentionné dans votre message est désormais obsolète, le nouveau lien est support.google.com/googleplay/android-developer/answer/… . J'espère que vous mettez à jour l'article avec le dernier lien et btw, joli post. !!
Rohan Kandwal
7

Vous voudrez peut-être essayer de définir l'attribut supports-screens:

<supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:xlargeScreens="true" >
</supports-screens>

Le Wildfire a un petit écran, et selon la documentation, cet attribut doit par défaut être "true" dans tous les cas, mais il y a des problèmes connus avec les paramètres des écrans de support sur différents téléphones, donc j'essaierais quand même.

De plus, comme David le suggère, compilez et ciblez toujours la version la plus récente de l'API Android, sauf si vous avez de bonnes raisons de ne pas le faire. Presque tous les SDK antérieurs à la version 2.2 ont un problème sérieux ou un comportement étrange; ce dernier SDK permet de les résoudre ou d'en dissimuler un grand nombre (mais pas tous). Vous pouvez (et devriez) utiliser l'outil Lint pour vérifier que votre application reste compatible avec l'API 4 lors de la préparation d'une version.

Michael A.
la source
Merci, j'attends une réponse de l'assistance aux développeurs Google pour ma dernière demande d'assistance. J'essaierai ceci après avoir reçu une réponse de leur part (je ne veux pas les confondre en téléchargeant encore un autre APK). Vous fera savoir comment cela se passe.
Greg Hewgill
J'espère que vous n'aurez pas à attendre trop longtemps. Ils n'ont pas exactement la réputation de réagir rapidement. :-)
Michael A.
J'ai déjà fait des allers-retours avec eux à quelques reprises, mais ma dernière question est restée sans réponse depuis 22 heures. C'est frustrant d'avoir à attendre, mais au moins ce n'est pas essentiel à la mission ou quoi que ce soit.
Greg Hewgill
Je voulais juste vous faire savoir que j'ai trouvé le problème, voir ma réponse à cette question. Merci de votre aide.
Greg Hewgill
7

Finlay, j'ai rencontré le même problème dans ma candidature. J'ai développé l'application Phone Gap pour android:minSdkVersion="7" & android:targetSdkVersion="18"laquelle est une version récente de la plate-forme Android.

J'ai trouvé le problème avec Google Docs

Le problème est peut-être que j'ai écrit une fonction JS qui fonctionne KEY-CODEpour valider uniquement les alphabets et le numéro, mais le clavier a un code de touche différent spécialement pour le clavier de l'ordinateur et le clavier mobile. C'était donc mon problème.

Je ne sais pas si ma réponse est correcte ou non et il est possible que la réponse ci-dessus soit plus simple, mais je vais essayer d'énumérer quelques points qui devraient être pris en compte pendant que nous construisons l'application.J'espère que vous suivrez ceci pour résoudre ce genre de problème.

  • Utilisez le android:minSdkVersion="?"selon vos besoins et android:targetSdkVersion="?"devrait être le dernier dans lequel votre application cible. voir plus

  • Essayez de n'ajouter que les autorisations qui seront utilisées dans votre application et supprimez toutes celles qui ne sont pas nécessaires.

  • Découvrez l'écran pris en charge par application

    <supports-screens 
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true"/>
  • Peut-être avez-vous implémenté un code de costume ou un widget de costume qui n'a pas pu s'exécuter tardivement sur un appareil ou un onglet.Avant d'écrire le code long, essayez d'abord d'écrire du code bêta et testez-le si votre code fonctionnera sur tous les appareils ou non .

  • Et j'espère que Google publiera un outil qui pourra valider votre code avant de télécharger l'application et dit également que, pour une raison spécifique, nous ne sommes pas autorisés à exécuter votre application sur certains appareils afin que nous puissions le résoudre facilement.

Chintan Khetiya
la source
6

J'ai quelques suggestions:

  1. Tout d'abord, vous semblez utiliser l'API 4 comme cible. AFAIK, il est recommandé de toujours compiler avec le dernier SDK et de le configurer en android:minSdkVersionconséquence.

  2. Dans cet esprit, rappelez-vous que cet android:requiredattribut a été ajouté dans l'API 5 :

La déclaration de fonctionnalité peut inclure un android:required=["true" | "false"]attribut (si vous compilez avec le niveau API 5 ou supérieur), qui vous permet de spécifier si l'application (...)

Ainsi, je vous suggère de compiler avec le SDK 15, également défini targetSdkVersionsur 15, et de fournir cette fonctionnalité.

Cela montre également ici, sur le site Play, comme incompatible avec tout appareil que j'ai qui est (coïncidence?) Gingerbread (Galaxy Ace et Galaxy Y ici). Mais il se montre compatible avec mon Galaxy Tab 10.1 ( Honeycomb ), Nexus S et Galaxy Nexus (tous deux sur ICS ).

Cela m'a également laissé me demander, et c'est une supposition très sauvage, mais comme android.hardware.faketouch API11 + , pourquoi ne pas essayer de le supprimer juste pour voir si cela fonctionne? Ou peut-être que tout est lié de toute façon, puisque vous essayez d'utiliser des fonctionnalités ( faketouch) et l' requiredattribut qui ne sont pas disponibles dans l'API 4. Et dans ce cas, vous devez compiler avec la dernière API.

J'essaierais cela en premier et ne supprimerais l' faketouchexigence qu'en dernier recours (bien sûr) --- comme cela fonctionne lors du développement, je dirais que c'est juste une question de l'application compilée ne reconnaissant pas la fonctionnalité (en raison des exigences du SDK) , laissant ainsi des problèmes de filtrage inattendus sur Play.

Désolé si cette hypothèse ne répond pas à votre question, mais il est très difficile de diagnostiquer ce type de problèmes et d'identifier la solution sans tester réellement. Ou du moins pour moi sans toute connaissance de la façon dont Play filtre vraiment les applications.

Bonne chance.

davidcesarino
la source
Merci, cela me donne des idées précises. À l'origine, je n'avais aucune <uses-feature>balise, c'était une tentative de le rendre compatible avec plus d'appareils plutôt que moins. Je vais essayer de changer les balises de version du SDK, ce qui semble être l'approche la plus probable. Je dois ajouter que j'ai utilisé minSdkVersion="4"parce que cette version n'impliquait plus certaines autorisations (lire l'état du téléphone, modifier la carte SD) dont mon application n'a pas besoin.
Greg Hewgill
Changer les versions du SDK en android:minSdkVersion="5" android:targetSdkVersion="15"n'a pas aidé non plus. J'ai contacté l'assistance aux développeurs de Google Play et j'espère qu'ils pourront me dire pourquoi. Ce serait bien si la raison du filtrage était indiquée sur la page de l'application Play.
Greg Hewgill
Oui ce serait super. En attendant, avez-vous essayé de définir faketouchcomme required= false?
davidcesarino
La dernière itération supprime toutes les <uses-feature>balises, car l'assistance Google m'a dit que la raison pour laquelle il n'était pas disponible pour mon appareil était à cause de la android.hardware.faketouchfonctionnalité. Cela semble ridicule, d'autant plus qu'une de mes versions précédentes n'avait pas non plus les <uses-feature>balises, mais peu importe. J'attends leur réponse et je ne veux pas les confondre en téléchargeant une autre version. Ce serait bien s'il y avait un moyen de tester cela sans télécharger et publier à plusieurs reprises de nouveaux APK.
Greg Hewgill
Je ne dirais pas ridicule, car c'est un drapeau ajouté sur les versions ultérieures de sdk (api 11), d'où la raison pour laquelle j'ai suggéré de compiler et de cibler api15 (n'oubliez pas de changer votre project.properties, pas seulement manifest). Je suis toujours surpris de le définir comme requis = false n'a pas fonctionné.
davidcesarino
6

Autorisations qui impliquent les exigences des fonctionnalités

Par exemple, la fonctionnalité android.hardware.bluetooth a été ajoutée dans Android 2.2 (API niveau 8), mais l'API bluetooth à laquelle elle fait référence a été ajoutée dans Android 2.0 (API niveau 5). Pour cette raison, certaines applications ont pu utiliser l'API avant d'avoir la possibilité de déclarer qu'elles avaient besoin de l'API via le système.

Pour éviter que ces applications ne soient rendues disponibles involontairement, Google Play suppose que certaines autorisations liées au matériel indiquent que les fonctionnalités matérielles sous-jacentes sont requises par défaut. Par exemple, les applications qui utilisent Bluetooth doivent demander l'autorisation BLUETOOTH dans un élément - pour les applications héritées, Google Play suppose que la déclaration d'autorisation signifie que la fonctionnalité android.hardware.bluetooth sous-jacente est requise par l'application et configure le filtrage en fonction de cette fonctionnalité .

Le tableau ci-dessous répertorie les autorisations qui impliquent des exigences de fonctionnalité équivalentes à celles déclarées dans les éléments. Notez que les déclarations, y compris tout attribut android: required déclaré, ont toujours la priorité sur les fonctionnalités impliquées par les autorisations ci-dessous.

Pour toutes les autorisations ci-dessous, vous pouvez désactiver le filtrage basé sur la fonctionnalité implicite en déclarant explicitement la fonctionnalité implicite, dans un élément, avec un attribut android: required = "false". Par exemple, pour désactiver tout filtrage basé sur l'autorisation CAMERA, vous devez ajouter cette déclaration au fichier manifeste:

<uses-feature android:name="android.hardware.camera" android:required="false" />


<uses-feature android:name="android.hardware.bluetooth" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.wifi" android:required="false" />

http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions

OM PRAKASH SEERVI
la source
Je vous remercie! Je n'avais aucune idée de l'autorisation d'utilisation par défaut de la fonctionnalité requise.
Jim Pekarek
5

Pour donner une solution supplémentaire au problème ci-dessus 'Cette application est incompatible avec votre ...', permettez-moi de partager ma solution pour une cause de problème différente. J'ai essayé d'installer une application sur un appareil bas de gamme Samsung Galaxy Y (GT-S6350) et j'ai obtenu cette erreur du Play Store. Pour tester diverses configurations d'AndroidManifest, j'ai créé un compte et suivi la routine décrite dans https://stackoverflow.com/a/5449397/372838 jusqu'à ce que mon appareil apparaisse dans la liste des appareils pris en charge.

Il s'est avéré que de nombreux appareils deviennent incompatibles lorsque vous utilisez l'autorisation Appareil photo:

<uses-permission android:name="android.permission.CAMERA" />

Lorsque j'ai supprimé cette autorisation spécifique, l'application était disponible pour 1180 appareils au lieu de 870. J'espère que cela aidera quelqu'un

dvtoever
la source
7
Peut-être que cela peut aider: <uses-permission android: name = "android.permission.CAMERA" /> <uses-feature android: name = "android.hardware.camera" android: required = "false" />
user1205415
3

Typique, je l'ai trouvé juste après avoir posé cette question avec désespoir; l'outil que je recherchais était:

$ aapt dump badging <my_apk.apk>
keldar
la source
Il semble que vous vouliez publier cette réponse sur stackoverflow.com/questions/16145927/… à la place.
Greg Hewgill
3

Bien qu'il y ait déjà pas mal de réponses, j'ai pensé que ma réponse pourrait aider certains qui ont exactement le même problème que le mien. Dans mon cas, le problème est causé par les autorisations suivantes ajoutées par la suggestion d'un réseau publicitaire:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

La conséquence des autorisations ci-dessus est que les fonctionnalités suivantes sont ajoutées automatiquement:

android.hardware.LOCATION
android.hardware.location.GPS
android.hardware.location.NETWORK

La raison en est que "Google Play tente de découvrir les exigences de fonctionnalité implicites d'une application en examinant d'autres éléments déclarés dans le fichier manifeste, en particulier les éléments." Deux de mes appareils de test ne disposent pas des fonctionnalités ci-dessus, l'application est donc devenue incompatible avec elles. La suppression de ces autorisations a résolu le problème immédiatement.

Hong
la source
2

J'ai trouvé un autre moyen pour lequel ce problème se produit:
le système d'exploitation d'origine de mon téléphone LG était Froyo (Android 2.2) et a été mis à jour vers ICS (Android 4.0.4). Mais la console des développeurs de Google Play montre qu'elle détecte mon téléphone comme un appareil Froyo. (Google Play n'a pas autorisé le téléchargement de l'application en raison de la fausse `` incompatibilité '', mais il détecte toujours l'installation.)

Les paramètres du téléphone, dans «logiciel», indiquent ICS V4.0.4. Il semble que les informations du serveur Google Play pour le téléphone ne soient pas mises à jour pour refléter la mise à jour ICS sur l'appareil. Le manifeste de l'application minSDK est défini sur Honeycomb (3.0), donc bien sûr, Google Play filtre l'application.

Intérêt supplémentaire:
l'application utilise In-app Billing V3. La première fois via IabHelper permet à l'application de faire des achats via le service Google Play. Mais une fois l'achat effectué, l'achat n'est PAS mis dans l'inventaire et IabHelper rapporte qu'aucun article n'est détenu. Les messages de débogage affichent un résultat "achat échoué" de l'achat même si la fenêtre Google Play annonce "achat réussi".

ajay1865
la source
0

J'ai eu le même problème. Cela a été causé par des codes et des numéros de version différents dans mon script de construction manifeste et gradle. Je l'ai résolu en supprimant le code de version et le numéro de version de mon manifeste et en laissant gradle s'en occuper.

John Moffitt
la source
0

J'ai aussi eu le même problème. J'ai publié une application en mode Test créée avec React Native 59. elle n'était pas compatible pour certains testeurs. Le message n'était pas clair sur les raisons pour lesquelles l'application n'était pas compatible, après avoir compris que j'avais limité l'application pour qu'elle soit disponible uniquement pour certains pays. c'était le problème, mais comme je l'ai dit, le message n'était pas clair. dans Play Store WebApp, le message est: "cette application n'est pas compatible avec votre appareil". dans l'application mobile, le message "Cette application n'est pas disponible dans votre pays"

devoka
la source
0

Si vous êtes ici en 2020 et que vous pensez que l'appareil recevant le message d'erreur devrait être compatible:

Plusieurs autres applications majeures se sont heurtées à cela, notamment Instagram (1B + installations) et Clash of Clans (100M + installations). Cela semble être un problème avec le système d'exploitation Android de Google.

Pour corriger le message d'erreur "Votre appareil n'est pas compatible avec cette version", essayez de vider le cache du Google Play Store, puis les données. Ensuite, redémarrez le Google Play Store et essayez à nouveau d'installer l'application.

[ https://support.getupside.com/hc/en-us/articles/226667067--Device-not-compatible-error-message-in-Google-Play-Store]

Voici un lien vers la page d'assistance officielle de Google que vous pouvez lier à vos utilisateurs pour savoir comment vider le cache: https://support.google.com/googleplay/answer/7513003

blub
la source