Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nexus 7 incompatible because of manifest settings

my app doesn't show up on the Nexus 7. the play store console shows for the Nexus 7 in the devices list:

Unsupported devices due to your manifest settings:

Nexus 7(grouper)"

my manifest looks like this:

...

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14">
</uses-sdk>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.vending.BILLING" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<compatible-screens>
    <screen android:screenSize="normal" android:screenDensity="mdpi"/>
    <screen android:screenSize="normal" android:screenDensity="hdpi"/>
    <screen android:screenSize="normal" android:screenDensity="xhdpi"/>

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

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

...

I do not require a camera which seems to be the case for the usual incompatibility issues. I am not using the supports-screens entry ( I want to exclude all small screen devices, as well as ldpi normal devices and this is not possible using the supports-screens entry AFAIK).

any idea what could be thr problem?

one interesting detail might be that the nexus 7 reports having DENSITY_TV (213dpi). However, "tv" is not a possible value for the android:screenDensity tag.

EDIT: developer console reports the following required permissions:

Permissions: 
android.permission.INTERNET, 
android.permission.ACCESS_NETWORK_STATE, 
android.permission.WAKE_LOCK, 
android.permission.READ_PHONE_STATE, 
android.permission.WRITE_EXTERNAL_STORAGE, 
com.android.vending.BILLING, 
android.permission.ACCESS_WIFI_STATE

Features: 
android.hardware.screen.landscape, 
android.hardware.touchscreen, 
android.hardware.wifi
like image 620
P.Melch Avatar asked Oct 10 '12 14:10

P.Melch


3 Answers

This is indeed true, you cannot add "tvdpi" to the manifest. There is a workaround though, if you enter "213" instead, which as you have pointed out is the dpi value of the density, eclipse will be happy with it and you will also have your application showing up on nexus 7 devices.

like image 113
biddulph.r Avatar answered Nov 16 '22 02:11

biddulph.r


Reading your permissions list, the READ_PHONE_STATE there might be causing Google Play to imply that your app requires android.hardware.telephony feature which is not available on Nexus 7.

Try adding this to your manifest to resolve this issue:

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

You can read more about "Permissions that Imply Feature Requirements" here.

like image 20
Joe Avatar answered Nov 16 '22 02:11

Joe


Once, I uploaded my app. It was not available to nexus 7 either. In my case it was caused because I had in my manifest file

<uses-permission android:name="android.permission.CALL_PHONE" />

I had the above line because I was giving the possibility to call a telephone number with an Intent in one application screen. This feature was a minor one and was not crucial for the application at all. That it is to say I wanted the application to run in devices without telephone capabilities.

I found this post Five Steps to Futre Hardware Hapinness in the Android Developer Blog which explains exactly the issue.

Adding the next line to the manifest file, generating a new APK, and uploading it to the Play Store made my app compatible to another group of devices including the nexus 7.

<uses-feature android:name="android.hardware.telephony" android:required="false"/>
like image 42
Sergio del Amo Avatar answered Nov 16 '22 03:11

Sergio del Amo