50

I'm having trouble with the Google Play store that insists that my app is supported by 0 devices. I've tried all the solutions I found on SO and elsewhere. This isn't about the apk being inactive, it gets activated be default and I've even tried to deactivate and reactivate it.

I've tested it on my Galaxy Nexus and it works very well, there's no reason for it to be incompatible with every single Android device...

Here's my manifest file:

<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" />

The full project source can be found here: https://github.com/Nurgak/Android-Bluetooth-Remote-Control as it's open-source.

This is what I see on Google Play. enter image description here

The 5 features being

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

And 4 permissions

android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.CAMERA
android.permission.INTERNET

I'm absolutely appalled by their support too, I've only gotten generic "hey have you looked at our FAQs?" replies to e-mails.

Solenoid
  • 2,351
  • 5
  • 29
  • 48

14 Answers14

55

I had faced a similar issue when I had declared camera hardware in uses-feature tag in manifest file in my application as follows:

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

If you don't specify the android:required attribute it defaults to "true". Thus, Google Play Store will assume that the application will not work unless the camera hardware is present.

Once you set android:required to false as given below, Play Store will accept the APK and will show a list of devices available for the application.

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

You may also look for misspellings on features descriptors. For supported feature descriptors see http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference

For more information: http://developer.android.com/guide/topics/manifest/uses-feature-element.html

Alberto Gaona
  • 2,427
  • 25
  • 20
Sujit Devkar
  • 1,195
  • 3
  • 12
  • 22
39

Go to release management then -> Device catalog, and select any Unsupported device to show its details and you will see the reason why this device doesn't supported

enter image description here

enter image description here

enter image description here

Gouda Elalfy
  • 6,888
  • 1
  • 26
  • 38
  • 3
    Can this be set as the accepted answer? It provides exact instructions on how to troubleshoot the issue instead of trying to guess what the problem is! – David Airapetyan Jun 08 '18 at 18:32
  • Mine says "Available on 0 device" on the private alpha track, but when i open the device catalog, or even open "release details" says 2000+ devices supported. App not appearing in the store. There is definitely a bug in my case. – JCutting8 Oct 31 '20 at 09:16
35

We recently moved to Android Studio (from Eclipse) and I was trying to upload my first production version built with Studio, and I got the dreaded "Supported Android Devices 0" message when I uploaded my APK. The solution ended up being how we were including the apache commons codec library.

Check your build.gradle file - if you see something like:

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

change it to:

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

My theory is that the "org.apache.directory.studio" part of the namespace is screwing up the developer console and using the shorthand works fine.

How did I discover this? Well, I didn't, they did I just got lucky and found their commit message via a Google search.

DiscDev
  • 38,652
  • 20
  • 117
  • 133
  • 11
    This was a life saving answer! in my case it was the other issue mentioned on in the page you mentioned i.e. `compile 'org.apache.directory.studio:org.apache.commons.io:2.4'` that was the culprit. I had to change it to `compile 'commons-io:commons-io:2.4'` – aphoe Mar 04 '16 at 06:32
  • 1
    Thanks a lot... It saved the life of my first android app. Have changed to `commons-io:commons-io:x.x` and it got supported by 1000's of devices. – codelearner Mar 08 '16 at 07:25
  • 2
    Thank you very much, my problem resolve after 2 days. I change `compile 'org.apache.directory.studio:org.apache.commons.lang:2.6'` to `compile 'commons-lang:commons-lang:2.6'` and problem resolved. – Sayed Abolfazl Fatemi Jun 07 '16 at 14:13
32

To me the issue was this line in the manifest file:

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

I would've spend maybe quite some time to track it down but, fortunately, Google provides in the developer console the ability to contact them via chat (for some reason that option is not present anymore ATMW, maybe it's capped?). They were able to pinpoint the issue in a few minutes, I had to change the above line to

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

Quite a time saver, so thanks Google!

Sorin Comanescu
  • 4,829
  • 3
  • 29
  • 38
21

Sometimes the reason for this is a third party library that you have referenced. If you can find which one is it and if you can remove it you can solve the problem.

In my case I had to remove:

org.apache.commons.io:2.4

Ivo Stoyanov
  • 16,256
  • 8
  • 62
  • 65
  • No need to remove the dependency - see this answer: http://stackoverflow.com/a/32749726/1103584 – DiscDev Jan 19 '17 at 18:50
18
  • Try changing the apk name from com.bluetooth to com.nurgak.bluetoothremote
  • Try setting all the uses-feature"-tags to false
  • Try removing all permissions (I know the app won't work without them, but just for the sake of figuring out why Google Play says that the app supports 0 devices)

P.S.: You don't need android.hardware.screen.portrait if you set it to false, anyway. It doesn't have an effect in that case.

Harshad Pansuriya
  • 20,189
  • 8
  • 67
  • 95
Nick
  • 3,504
  • 2
  • 39
  • 78
4

I had a similar problem. My solution was to write this line correct in the manifest:

<uses-feature android:name="android.hardware.sensor.barometer" android:required="true" />
Theraot
  • 31,890
  • 5
  • 57
  • 86
7heViking
  • 7,137
  • 11
  • 50
  • 94
2

though this question is answered, some additional amendments,, remove any .jar dependency (specially common-io.*.jar dependency). i was able to resolve the issue after solving dependency issue.

Moin Pansare
  • 209
  • 2
  • 4
0

In case of using gradle, make sure all the manifest in your project are aligned to the min/max/target sdk version.

shimi_tap
  • 7,822
  • 5
  • 23
  • 23
0

I also had a problem with 0 supported devices, but the cause was different. One of the libraries would create a lib/README.txt file inside the generated APK. Upon uploading the APK to the Google Play Console, the lib/README.txt file would be picked up by the APK analysis tool and would be considered as a native library which wasn't supported by any device.

I have fixed the issue by removing the file from the APK using following Gradle configuration in build.gradle file:

android {
    ...

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

I had this problem. Fixed by removing all in the manifest.

Alexey Ishkov
  • 399
  • 4
  • 4
0

I know it is late to answer, I face the same problem. With setting all users-features as false, play store still shows zero devices supported.

Here is solution, hope will help someone

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

Also

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

Hope it help.

Amarjit
  • 4,327
  • 2
  • 34
  • 51
0

I found that this issue is caused by AndroidManifest.xml file. Just replace

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

with

<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true"/>
Dharman
  • 30,962
  • 25
  • 85
  • 135
shailesh
  • 449
  • 5
  • 11
0

Mine related to the Zxing barcode scanner features. I chatted with developer support who identified that i had an issue with the android.hardware.camera.autoFocus property. Support wasn't sure what I needed to do in order to fix the issue. Using answers above, I added android:required="false" in the manifest file.

From 0 devices to Supported Android devices 7,856

Change from:

<!--barcode scan-->
<uses-feature android:name="android.hardware.camera.autoFocus"/>
<uses-feature android:name="android.hardware.camera"/>

to

<!--barcode scan-->
<uses-feature android:name="android.hardware.camera.autoFocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
Jacksonsox
  • 1,114
  • 15
  • 25