web-dev-qa-db-fra.com

L'application Android est prise en charge par les appareils

J'ai des problèmes avec le Google Play Store qui insiste sur le fait que mon application est prise en charge par 0 appareils. J'ai essayé toutes les solutions trouvées sur SO et ailleurs. Cela ne veut pas dire que l'apk est inactif, il est activé par défaut et j'ai même essayé de le désactiver et de le réactiver.

Je l'ai testé sur mon Galaxy Nexus et cela fonctionne très bien, il n'y a aucune raison pour que ce soit incompatible avec chaque appareil Android ...

Voici mon fichier manifeste:

<uses-sdk
    Android:minSdkVersion="14"
    Android:targetSdkVersion="17" />

<supports-screens
    Android:anyDensity="true"
    Android:largeScreens="true"
    Android:normalScreens="true"
    Android:resizeable="true"
    Android:smallScreens="true"
    Android:xlargeScreens="true" />

<uses-permission Android:name="Android.permission.CAMERA" />
<uses-permission Android:name="Android.permission.BLUETOOTH" />
<uses-permission Android:name="Android.permission.BLUETOOTH_ADMIN" />
<uses-permission Android:name="Android.permission.INTERNET" />

<uses-feature
    Android:name="Android.hardware.accelerometer"
    Android:required="true" />
<uses-feature
    Android:name="Android.hardware.screen.portrait"
    Android:required="false" />

La source complète du projet est disponible à l’adresse suivante: https://github.com/Nurgak/Android-Bluetooth-Remote-Control en tant qu’open source.

C’est ce que je vois sur Google Play .enter image description here

Les 5 caractéristiques étant

Android.hardware.ACCELEROMETER
Android.hardware.BLUETOOTH
Android.hardware.CAMERA
Android.hardware.camera.AUTOFOCUS
Android.hardware.TOUCHSCREEN

Et 4 autorisations

Android.permission.BLUETOOTH
Android.permission.BLUETOOTH_ADMIN
Android.permission.CAMERA
Android.permission.INTERNET

Je suis absolument consterné par leur soutien également, je n’ai que le générique "hé avez-vous consulté notre FAQ?" réponses aux e-mails.

35
Solenoid
  • Essayez de changer le nom de l'apk de com.bluetooth en com.nurgak.bluetoothremote.
  • Essayez de régler tous les uses-feature"-tags sur false
  • Essayez de supprimer toutes les autorisations (je sais que l'application ne fonctionnera pas sans elles, mais uniquement pour comprendre pourquoi Google Play indique que l'application prend en charge 0 appareils.)

P.S .: Vous n'avez pas besoin de Android.hardware.screen.portrait si vous le définissez à false, de toute façon. Cela n'a pas d'effet dans ce cas.

11
Nick

J'ai rencontré un problème similaire lorsque j'avais déclaré le matériel de l'appareil photo dans la balise uses-feature du fichier manifeste de mon application, comme suit:

<uses-feature Android:name="Android.hardware.camera">

Si vous ne spécifiez pas l'attribut Android: required, sa valeur par défaut est "true". Ainsi, Google Play Store supposera que l'application ne fonctionnera pas si le matériel de l'appareil photo n'est pas présent.

Une fois que vous définissez Android: requis sur false comme indiqué ci-dessous, Play Store acceptera l'APK et affichera une liste des périphériques disponibles pour l'application.

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

Vous pouvez également rechercher des fautes d'orthographe sur les descripteurs de caractéristiques. Pour les descripteurs de fonctionnalités pris en charge, voir http://developer.Android.com/guide/topics/manifest/uses-feature-element.html#features-reference

Pour plus d'informations: http://developer.Android.com/guide/topics/manifest/uses-feature-element.html

34
Sujit Devkar

Nous avons récemment migré vers Android Studio (à partir d'Eclipse) et j'essayais de télécharger ma première version de production construite avec Studio. Le message redouté "Pris en charge les appareils Android 0" a été envoyé lorsque j'ai téléchargé mon APK. La solution a finalement consisté à inclure la bibliothèque de codecs Apache commons.

Vérifiez votre fichier build.gradle - si vous voyez quelque chose comme:

compile 'org.Apache.directory.studio:org.Apache.commons.codec:1.+'

changez le en:

compile 'commons-codec:commons-codec:1.+' 

Ma théorie est que la partie "org.Apache.directory.studio" de l'espace de noms bousille la console du développeur et que l'utilisation du raccourci fonctionne bien.

Comment ai-je découvert cela? Eh bien, je ne l'ai pas fait, ils l'ont fait J'ai eu de la chance et j'ai trouvé leur message de validation via une recherche Google.

34
DiscDev

Parfois, la raison en est une bibliothèque tierce que vous avez référencée. Si vous pouvez trouver lequel et si vous pouvez le supprimer, vous pouvez résoudre le problème. 

Dans le cas où je devais enlever: 

org.Apache.commons.io:2.4

20
Ivo Stoyanov

Pour moi, le problème était cette ligne dans le fichier manifeste:

<uses-feature Android:name="Android.hardware.camera2" />

J'aurais peut-être pris pas mal de temps pour le localiser, mais heureusement, Google offre à la console de développement la possibilité de les contacter via le chat (pour une raison quelconque, cette option n'est plus présente dans ATMW, peut-être est-elle limitée?). Ils ont pu identifier le problème en quelques minutes, je devais changer la ligne ci-dessus pour

<uses-feature Android:name="Android.hardware.camera2" Android:required="false" />

Un gain de temps considérable, merci Google!

20
Sorin Comanescu

Allez dans release management puis -> Catalogue de périphériques, puis sélectionnez un périphérique non pris en charge pour en afficher les détails. Vous verrez alors pourquoi ce périphérique n'est pas pris en charge.

 enter image description here

 enter image description here

 enter image description here

14
Gouda Elalfy

J'avais un problème similaire. Ma solution a été d'écrire cette ligne correctement dans le manifeste:

<uses-feature Android:name="Android.hardware.sensor.barometer" Android:required="true" />
4
7heViking

bien que des réponses à cette question aient été apportées, certaines modifications supplémentaires, suppriment toute dépendance .jar (spécialement la dépendance common-io. *. jar).

2
Moin Pansare

J'ai eu ce problème. Fixé en supprimant tout dans le manifeste.

0
Alexey Ishkov

Si vous utilisez gradle, assurez-vous que tous les manifestes de votre projet sont alignés sur la version sdk min/max/target.

0
shimi_tap

Je sais qu'il est tard pour répondre, je suis confronté au même problème. Avec la définition de false dans toutes les fonctionnalités des utilisateurs, Play Store affiche toujours aucun périphérique pris en charge. 

Voici la solution, l'espoir aidera quelqu'un

   <uses-feature
            Android:glEsVersion="0x00020000"
            Android:required="true" />

Également 

<supports-screens
        Android:anyDensity="true"
        Android:largeScreens="true"
        Android:normalScreens="true"
        Android:resizeable="true"
        Android:smallScreens="true"
        Android:xlargeScreens="true" />

J'espère que ça vous aidera.

0
EminenT

J'ai également eu un problème avec 0 périphérique pris en charge, mais la cause était différente. Une des bibliothèques créerait un fichier lib/README.txt à l'intérieur de l'APK généré . Lors du téléchargement du fichier APK sur la console Google Play, le fichier lib/README.txt serait récupéré par l’outil d’analyse APK et serait considéré comme une bibliothèque native qui ne serait prise en charge par aucun appareil.

J'ai résolu le problème en supprimant le fichier du fichier APK à l'aide de la configuration Gradle suivante dans le fichier build.gradle:

Android {
    ...

    packagingOptions {
        exclude 'lib/README.txt'
    }
}
0
Vilius