Question

I have an application that suddenly (today) became incompatible with a device it was working on just fine. The app is Dragon Lords and the device is Samsung Galaxy Tab 2. Anyone have an idea what could have happened here?

The last apk was uploaded 2 months ago and everything was working fine. Today I had a player report that in the market the app is incompatible with his device. I checked on my Galaxy Tab 2 and it's the same story. My device is not rooted so I really have no idea what happened.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
package="mds.DragonLords"
android:versionCode="25"
android:versionName="1.2.19" >

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

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

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
     >
    <activity
        android:configChanges="keyboardHidden|orientation"
        android:name="com.tapjoy.TJCOffersWebView" />
    <activity
        android:configChanges="keyboardHidden|orientation"
        android:name="com.tapjoy.TapjoyFeaturedAppWebView" />
    <activity
        android:configChanges="keyboardHidden|orientation"
        android:name="com.tapjoy.TapjoyVideoView" />
    <activity
        android:configChanges="keyboardHidden|orientation"
        android:label="@string/app_name"
        android:name="mds.DragonLords.nowe.Splash"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".nowe.Tester" >
    </activity>
    <activity
        android:configChanges="keyboardHidden|orientation"
        android:label="@string/app_name"
        android:name="mds.DragonLords.nowe.Main"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
    </activity>

    <service android:name="mds.DragonLords.nowe.billing.BillingService"/>

    <receiver android:name="mds.DragonLords.nowe.billing.BillingReceiver">
        <intent-filter >
            <action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
            <action android:name="com.android.vending.billing.RESPONSE_CODE" />
            <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED"/>
        </intent-filter>
    </receiver>
</application>

</manifest>
Was it helpful?

Solution

Your manifest has

<uses-permission android:name="android.permission.READ_PHONE_STATE">

That permission automatically assumes you use the android.hardware.telephony feature (as only phones have READ_PHONE_STATE). Per the Optimizing for Android 3.0/Tablets document, your application will show as incompatible if you have the android.hardware.telephony feature required. Add the line

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

To ensure devices without telephony will still show as compatible. Make sure that your application properly handles devices without telephony (as attempting to read the phone state will crash those devices).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top