I am hesitant to ask this question, because it appears as though many people have a similar problem and yet I have found no solution that solves my particular instance.
I have developed an Android app (link to the actual app) and have uploaded it to the Play store. The Play store says
"This app is incompatible with your XT Mobile Network HTC HTC Wildfire S A510b."
Of course that is the phone on which I developed the app, so it ought to be compatible. Some people with other devices say that it reports compatible, others say it reports incompatible, but I can find no trend. (Apparently I don't know very many people with Android devices.)
I have tried the following:
moving a large-ish file out of the
res/raw
directory as suggested by this answer. The only file in there was a ~700 kB text file, but I moved it toassets/
with no apparent change.adding the following two feature assertions:
<uses-feature android:name="android.hardware.faketouch" /> <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
thinking that maybe my phone doesn't claim to support the usual
android.hardware.touchscreen
feature, but again, with no apparent change.
When uploading the APK to the Play store, the only filter that it reports as active is the android.hardware.faketouch
feature.
The following is the output of aapt dump badging bin/NZSLDict-release.apk
:
package: name='com.hewgill.android.nzsldict' versionCode='3' versionName='1.0.2'
sdkVersion:'4'
targetSdkVersion:'4'
uses-feature:'android.hardware.faketouch'
uses-feature-not-required:'android.hardware.touchscreen'
application-label:'NZSL Dictionary'
application-icon-160:'res/drawable/icon.png'
application: label='NZSL Dictionary' icon='res/drawable/icon.png'
launchable-activity: name='com.hewgill.android.nzsldict.NZSLDictionary' label='NZSL Dictionary' icon=''
main
other-activities
supports-screens: 'small' 'normal' 'large'
supports-any-density: 'true'
locales: '--_--'
densities: '160'
and for completeness, my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hewgill.android.nzsldict"
android:versionCode="3"
android:versionName="1.0.2">
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
<uses-feature android:name="android.hardware.faketouch" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<application android:label="@string/app_name"
android:icon="@drawable/icon">
<activity android:name="NZSLDictionary"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".WordActivity" />
<activity android:name=".VideoActivity" />
<activity android:name=".AboutActivity" />
</application>
</manifest>
In the "Device Availability" section of the Play store, I can see that all the HTC devices, including the Wildfire S, are supported except for "G1 (trout)" and "Touch Viva (opal)", whatever those are. Actually I see that both "Wildfire S (marvel)" and "Wildfire S A515c (marvelc)" are listed as supported, but my "Wildfire S A510b" is not specifically mentioned. Can this sort of sub-model identifier matter that much? I have been able to download several other apps from Google Play to my phone with no problems.
The only thing I haven't done at this point is wait 4-6 hours after uploading the latest version (as in this comment) to see whether it still says it's incompatible with my phone. However, the Play store page currently shows 1.0.2 which is the latest I have uploaded.
handleSilentException
method to report silently. It will at least tell you which hardware the app is working on. – Gavin Miller