10

I've developed an application for Android that cannot be download to Android ICS devices from the Market. Browsing the market with a 4.x device people see a "not compatible warning" and cannot proceed with the download. The app has a minSdkVersion setting of 7. It works well on 2.x and 3.x Android devices. I don't know what to do and how I can fix this. Do I need to setup anything special in order to be compatible with ICS? I cannot find any information on this subject.

Update: I just received confirmation that installing the APK by hand works on a 4.0 device. It just won't install through the market! Again, it shows as "not compatible for your device" in the market. Any ideas?

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nl.tmd.natuurijs" 
android:versionCode="7" android:versionName="1.1.3">

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application android:name=".NatuurijsApplication"
    android:icon="@drawable/icon" android:label="@string/app_name">

    <uses-library android:name="com.google.android.maps" android:required="false"/>

    <!-- Main Activity -->
    <activity android:name=".MainActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme" android:launchMode="singleTask" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="natuurijs" android:host="main" />
        </intent-filter>
    </activity>

    <!-- Map Activity -->
    <activity android:name=".NatuurijsMapActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme" />

    <!-- Map Activity -->
    <activity android:name=".NatuurijsAddVenueActivity" android:label="@string/app_name"
        android:windowSoftInputMode="adjustPan" android:theme="@style/NatuurijsTheme">
    </activity>

    <!-- Locations list Activity -->
    <activity android:name=".NatuurijsLocationsActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme">
    </activity>

    <!-- Location details Activity -->
    <activity android:name=".NatuurijsLocationDetailsActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme">
    </activity>

    <!-- Select a location by hand -->
    <activity android:name=".SelectLocationActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme">
    </activity>

    <!-- Info Activity-->
    <activity android:name=".InfoActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme">
    </activity>

</application>
</manifest>

Could it be the theme? the theme is not anything special. It simply inherits from Theme.Black.NoTitleBar

<style name="NatuurijsTheme" parent="android:Theme.Black.NoTitleBar"></style>
Stewbob
  • 16,759
  • 9
  • 63
  • 107
Jeroen Peeters
  • 1,974
  • 1
  • 20
  • 24
  • 2
    Show us your `AndroidManifest.xml`. Can you install and run your application on a ICS 4.x device by hand? – theomega Feb 04 '12 at 19:02
  • I don't have any device at hand to test it on. Developing for Android is more a hobby for me. I am going to give it a go on the simulator, but I want to avoid using the simulator because for me it is to slow and in no ways a good comparison – Jeroen Peeters Feb 04 '12 at 19:22
  • Could it be that the problem is not caused by the SDK version but because of some unsupported screen size? – bvanvelsen - ACA Group Feb 05 '12 at 08:23
  • I only use drawable-hdpi folder. In devices with mdpi or ldpi displays the drawables are simply sampled down. For me this is currently acceptable. Does anything higher than hdpi exists? Do I need to do anything to support those? – Jeroen Peeters Feb 06 '12 at 10:16
  • 2
    There's xhdpi. That's what the Galaxy Nexus uses. – Michell Bak Feb 06 '12 at 16:25
  • 2
    Did you ever figure this out? I'm having a similar problem. I don't have anything special in the Manifest either. – you786 Apr 07 '12 at 05:12
  • 3
    Well I can download your app without problem on my GS2 on ICS 4.0.3 – Stéphane May 03 '12 at 16:56
  • 1
    I'm able to download and use your app on Nexus S 4.0.4 – moujib May 17 '12 at 15:30

5 Answers5

6

Is your app copy-protected under "publishing options" in the play store publish section? Source: My Android App shows as "this item is not compatible with your device"

Community
  • 1
  • 1
Daniele
  • 1,005
  • 9
  • 26
3

I was getting similar complaints from my app. One thing I noticed with my app was that I was using a Tab Activity which is now deprecated in Android 4.0+. (Phones without a hard menu key will not be able to use an Options Menu if you use a TabActivity/TabHost which is a problem.) I replaced my tabs with normal buttons for app navigation and I believe this might have fixed my ICS compatibility issues.

Also, I tried updating my manifest android:minSdkVersion and ADDED android:targetSdkVersion , but I'm not sure if those actually fixed anything.

Note: If you need help finding your deprecated code, try telling Eclipse to show deprecated functionality as an error by changing the project properties.


EDIT:

More information: Apparently I still have some issues with ICS compatibility so the above is not the only thing I need to fix. Still not sure what else I can do. One thing I found in my research is that apparently people with custom ROMS sometimes have "incorrect XML values" which makes the Google Play store say that they aren't compatible. Perhaps downloading through the web version of Google Play and asking users to install remotely from there might solve our problems.

EDIT 2:

Your app should no longer use the copy-protection under "Publishing Options" in the Google Play Store publish section.

you786
  • 3,659
  • 5
  • 48
  • 74
2

More than likely the OEM's build of the Android device you are using has a bad value in an xml file somewhere, this is not an unheard of problem when it comes to Play on ICS.

2

Besides what is said by Deadeye, my guess is that it is due to the lack of screen support (4.X.X devices tend to have largeScreens or xlargeScreens).

You should need to compile to 2.3.3 at least and add to the manifest:

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

I think this will solve your problem.

neteinstein
  • 17,529
  • 11
  • 93
  • 123
2

try in your manifest

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

even if this won't solve your problem, it's highly recommended, since it will enable hardware acceleration on 3.0+ devices, it will hide not needed "menu" onscreen button in bottom system bar (on devices that show onscreen back, home etc button), and it allows Android development tools to detect compatibility problems between Android version in your code. Have you tried updating your android sdk and ide plugin?

Deadeye
  • 123
  • 8