Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android app suddenly not compatible with devices

I have an Android app that has been in the Google Play store for about two years now (https://play.google.com/store/apps/details?id=dkh.idex) with API level 7+ and support for all screen sizes. It uses a few permissions (ACCESS_NETWORK_STATE, INTERNET, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE).

On April 22 2013 I uploaded a version (version code 44) that worked fine on all my users devices. A month later, on May 22 2013 I uploaded a new version with some minor changes (version code 45), but the last few days (starting May 27) a lot of users has complained to me that their devices no longer are compatible with the newest version of my app. These users have been using the app with no such problems for up to two years. Some devices are still able to upgrade to the newest version, but others get the message that their device is not compatible when trying to upgrade (mind you, they already have an older version of the app). I was able to install the application directly through ADB (USB) on a device that said it was not compatible in the Google Play store (a Samsung Galaxy Tab 10.1, old version).

I looked through my changesets of my files, and the only change I have made in the AndroidManifest.xml between the two releases are updating the version code and version number. I have not changed any use permissions, supported screen sizes, supported API levels or even added any activities or changed debug settings.

Here is my AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="dkh.idex"
  android:versionName="3.2.11" android:versionCode="45">

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

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

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application android:name="dkh.classes.MyApp" android:label="@string/app_name"    android:debuggable="false" android:icon="@drawable/ic_launcher_idex_v3">
    <activity android:name=".idex"
              android:label="@string/app_name"
              android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Form2"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:configChanges="orientation">

    </activity>
    <activity android:name=".InfoForm"
        android:label="@string/app_name"
        android:screenOrientation="portrait">

    </activity>
    <activity android:name=".INSTAForm"
        android:label="@string/app_name"
        android:launchMode="standard"
        android:screenOrientation="portrait">
    </activity>
    <activity android:name=".HygieneForm"
        android:label="@string/app_name"
        android:screenOrientation="portrait">

    </activity>
    <activity android:name=".CommentForm"
        android:label="@string/app_name"
        android:screenOrientation="portrait">

    </activity>
    <activity android:name=".AddReqChooseForm"
        android:label="@string/app_name"
        android:screenOrientation="portrait">

    </activity>
    <activity android:name=".AddReqForm"
        android:label="@string/app_name"
        android:screenOrientation="portrait">

    </activity>
    <activity android:name=".FTPForm" android:label="@string/app_name" android:screenOrientation="portrait"></activity>
    <activity android:name=".SyncForm" android:label="@string/app_name" android:screenOrientation="portrait"></activity>
    <activity android:name=".DrawTestForm" android:label="@string/app_name"  android:configChanges="keyboardHidden|orientation"></activity>
    <activity android:name="StatisticsForm" android:screenOrientation="portrait" android:label="@string/app_name"></activity>
    <activity android:name="PhotoGallery" android:screenOrientation="portrait" android:label="@string/app_name"></activity>
    <activity android:name="PhotoView" android:label="@string/app_name"></activity>
    <activity android:name="ParametersForm" android:label="@string/app_name" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan"></activity>
    <activity android:name="PropertiesForm" android:label="@string/app_name" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan"></activity>
    <activity android:screenOrientation="portrait" android:name="InspectionChangeForm" android:label="@string/app_name"></activity>
    <activity android:name="AdvancedSyncWindow" android:label="@string/app_name" android:screenOrientation="portrait"></activity>
    <service android:process=":image_process" android:name=".ImageUploadService"></service>
    <activity android:name=".HelpWindow" android:label="@string/app_name"></activity>
    <activity android:name="RecoverView"></activity>
    <activity android:name="InspectionCommentForm" ></activity>

</application>
</manifest> `

In the rest of my code I have added some texts to my resource files and made some standard minor changes, but nothing that weren't in the app already in some form.

I am really puzzled by this problem. Does anyone know what could be the cause of this or know if Google has changed anything that could have an effect on this? Please ask if you need more information.

like image 354
Daniel Avatar asked Dec 13 '25 14:12

Daniel


1 Answers

I solved it.

The problem was that Google Play will filter applications based on the device screen size, and because xlargeScreens are not supported in API 7 (version 2.1) the filter will be set to false on these devices. This has not been enforced until end of May. My app had worked on the exact same specification for two years, but I suspect that Google Play has made an update to enforce this constraint.

The solution: If you have an app that is developed for API 7 but you want it to be available on xlargeScreens devices, you have to set in your manifest

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

If either minSdkVersion or targetSdkVersion is 9 or larger, Google Play will allow xlargeScreen devices to see your app.

like image 50
Daniel Avatar answered Dec 15 '25 05:12

Daniel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!