I have a weird issue regarding the publication of an Android application on the Google Play Store. The issue is that there are 0 devices compatible hence we can't publish it.
Here is what the manifest file looks like:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxx"
android:installLocation="auto"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:xlargeScreens="true" >
</supports-screens>
<application
android:name=".application.xxx"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<!-- To use google maps -->
<uses-library android:name="com.google.android.maps" />
<!-- activities/services defined here -->
</application>
</manifest>
As you can see there is nothing special in here. I have even tried to publish the app with 0 permissions defined just to see what would happen and I still got the same compatibility issue.
I should mention a couple of things:
- I have tried publishing with 0 permissions, still same issue.
- I have tried setting the
minSdkVersion
to 13, still same issue. - I am building using
Ant
(ant clean release
). The app runs fine on any of our devices (Galaxy SII with 2.3
,HTC Sensation with 2.3
,Galaxy Spica with 2.1
,Nexus S with 4.1.1
). - At some point in my code I am using features specific to API 13 and above but I am checking at runtime the API level and substitute that feature with another one compatible with older versions.
Any idea?
Thanks!
EDIT
The output of: aapt dump badging
is:
package: name='com.myapp' versionCode='1' versionName='1.0'
sdkVersion:'7'
uses-permission:'android.permission.INTERNET'
uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission:'android.permission.ACCESS_FINE_LOCATION'
uses-permission:'android.permission.ACCESS_NETWORK_STATE'
uses-permission:'android.permission.READ_CONTACTS'
application-label:'MyApp'
application-label-fr:'MyApp'
application-icon-120:'res/drawable-ldpi/ic_launcher.png'
application-icon-160:'res/drawable-mdpi/ic_launcher.png'
application-icon-240:'res/drawable-hdpi/ic_launcher.png'
application-icon-320:'res/drawable-xhdpi/ic_launcher.png'
application: label='MyApp' icon='res/drawable-mdpi/ic_launcher.png'
uses-library:'com.google.android.maps'
launchable-activity: name='com.myapp.activities.SplashScreenActivity' label='MyApp' icon=''
uses-permission:'android.permission.READ_EXTERNAL_STORAGE'
uses-implied-permission:'android.permission.READ_EXTERNAL_STORAGE','requested WRITE_EXTERNAL_STORAGE'
uses-permission:'android.permission.READ_CALL_LOG'
uses-implied-permission:'android.permission.READ_CALL_LOG','targetSdkVersion < 16 and requested READ_CONTACTS'
uses-feature:'android.hardware.location'
uses-implied-feature:'android.hardware.location','requested a location access permission'
uses-feature:'android.hardware.location.gps'
uses-implied-feature:'android.hardware.location.gps','requested android.permission.ACCESS_FINE_LOCATION permission'
uses-feature:'android.hardware.touchscreen'
uses-implied-feature:'android.hardware.touchscreen','assumed you require a touch screen unless explicitly made optional'
uses-feature:'android.hardware.screen.portrait'
uses-implied-feature:'android.hardware.screen.portrait','one or more activities have specified a portrait orientation'
main
other-activities
other-services
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'fr'
densities: '120' '160' '240' '320'