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.

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.

Solution 1

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

Solution 2

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

Solution 3

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.

Solution 4

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!

Solution 5

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

Solution 6

  • 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.

Solution 7

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

Solution 8

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.

Solution 9

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

Solution 10

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'
    }
}

Solution 11

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

Solution 12

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.

Solution 13

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

Solution 14

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