Reputation: 492
I'm aware there are similar questions on here, but none seem to have a satisfactory answer.
I'm trying to publish an app, but no matter what I try the developer console is reporting that there are zero supported devices
Here's my full manifest;
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blah.blahpro"
android:versionCode="6"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="17"/>
<supports-screens
android:anyDensity="true"
android:xlargeScreens="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:resizeable="true" />
<compatible-screens>
<!-- small size screens -->
<screen android:screenSize="small" android:screenDensity="ldpi" />
<screen android:screenSize="small" android:screenDensity="mdpi" />
<screen android:screenSize="small" android:screenDensity="hdpi" />
<screen android:screenSize="small" android:screenDensity="xhdpi" />
<!--Only hdpi and xhdpi for normal size screens -->
<screen android:screenSize="normal" android:screenDensity="ldpi" />
<screen android:screenSize="normal" android:screenDensity="mdpi" />
<screen android:screenSize="normal" android:screenDensity="hdpi" />
<screen android:screenSize="normal" android:screenDensity="xhdpi" />
<!-- all large size screens -->
<screen android:screenSize="large" android:screenDensity="ldpi" />
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="large" android:screenDensity="hdpi" />
<screen android:screenSize="large" android:screenDensity="xhdpi" />
<!-- all xlarge size screens -->
<screen android:screenSize="xlarge" android:screenDensity="ldpi" />
<screen android:screenSize="xlarge" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="hdpi" />
<screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
<!-- Special case for Nexus 7 -->
<screen android:screenSize="large" android:screenDensity="213" />
</compatible-screens>
<uses-feature android:name="android.hardware.location" android:required="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:name="android.hardware.CAMERA" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:icon="@drawable/blahicon"
android:label="@string/app_name"
android:allowBackup="false">
<activity
android:label="@string/app_name"
android:name="com.blah.blahpro.Main" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="@string/app_name"
android:name="com.blah.satcalcpro.Find"
>
<intent-filter >
<action android:name="com.blah.lookangles.FIND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Any help is appreciated.
Upvotes: 4
Views: 3003
Reputation: 4357
I know it is late to answer, I face the same problem. With setting false all users-features, 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" />
Upvotes: 0
Reputation: 56
It seems that uses-feature
is case sensitive.
You wrote two features in your manifest:
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.CAMERA" />
The first one is OK. You'd like to use a camera, but it is not required.
The problem is that the second requires an android.hardware.CAMERA
, which is not present in any Android device. They have a camera
, not a CAMERA
.
I hope this helps you.
Upvotes: 4
Reputation: 492
Problem sorted, but not sure exactly how... I tried removing all of the compatible-screen and support-screen code, but it didn't make much difference. The only thing I can think of is that I removed the line;
<uses-feature android:name="android.hardware.CAMERA" />
Which shouldn't have been there anyway. Now supported by 2522 devices, so pretty happy.
Here's the new manifest anyway:
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="17"/>
<uses-feature android:name="android.hardware.location" android:required="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light"
android:allowBackup="false">
<activity
android:label="@string/app_name"
android:name="com.blah.blahpro.Main" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="@string/app_name"
android:name="com.blah.blahpro.Find"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
>
<intent-filter >
<action android:name="com.blah.blahactivity.FIND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
Upvotes: 5
Reputation: 4207
I suggest commenting out compatible-screens and support-screens in the manifest, and see what happens when you upload the apk. I expect you will see that many devices are allowed when you do this.
Then, add back these requirements a few at a time, uploading the apk each time and seeing which restrictions are causing the # of devices to drop. Once you determine which restrictions are causing the problem, you can keep those out of the final build.
Upvotes: 1