Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android app is supported by 0 devices

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.

like image 928
Solenoid Avatar asked Dec 24 '12 10:12

Solenoid


People also ask

What is device compatibility in Android?

Because Android is an open source project, any hardware manufacturer can build a device that runs the Android operating system. Yet, a device is "Android compatible" only if it can correctly run apps written for the Android execution environment.

How do I know if a device is compatible with my Android?

To get to the developer options, open your device's Settings app and navigate to System > Advanced > Developer options > App Compatibility Changes.

Why are some apps not available on certain devices?

Unavailable Manufacturer-Specific AppsIf the app has a manufacturer name in its title, it might not be compatible with other devices. The good news is that most of these manufacturer-specific apps have alternatives that are often better anyway.


2 Answers

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

like image 192
Sujit Devkar Avatar answered Oct 13 '22 12:10

Sujit Devkar


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.

like image 28
DiscDev Avatar answered Oct 13 '22 13:10

DiscDev