Android Market: "This item is not compatible with your device."
W

3

8

This is really getting on my nerves. I have tried like everything to get my App to work on some more exotic tabs!

Have now published a testing app (just an eclipse android project with nothing else) to try different manifest settings. However I can't get my app to work on my tab with Android Market. It works on the device directly with debug.

What I have tested: Android 2.2 Android 2.3

Added this:

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

Tried this:

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

And then all combinations of all this. I have no uses-permission in this test app.

The strange thing that I don't get is that some apps works and I can't seems to find why they work and not some other. I have different devices and I use the web site compatibility check and some apps they just work and some doesn't.

What I would like to know is WHY an app is not compatible with Android Market for that specific device. Is there any way to get this information out? I guess this should be somewhere to find since it works sometimes and sometimes not.

Please help me find a way to figure this out.

(Im not looking for a workaround/root on the device, have already done this on some devices to get the app working. I want to know why)

---- EDIT ---- I now found and ran this command for my test app: ./aapt dump badging testapp.apk

I then see this: supports-any-density: 'true' densities: '120' '160' '240' Running screeninfo on my device say it has density 200. So I guess this is the problem. So now the question is, how can I add 200 to that list. Dont want to change density on the device.


This is my manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="se.whatnapp.mainfesttester"
    android:versionCode="8"
    android:versionName="1.9" >

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".MainfestTesterActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

As you can see this is a test case and I have nothing in it really. And still it doesn't work! This is the result from aapt dump badgin:

package: name='se.whatnapp.mainfesttester' versionCode='8' versionName='1.9'
sdkVersion:'10'
targetSdkVersion:'10'
application-label:'Mainfest Tester'
application-icon-120:'res/drawable-ldpi/ic_launcher.png'
application-icon-160:'res/drawable-mdpi/ic_launcher.png'
application-icon-240:'res/drawable-hdpi/ic_launcher.png'
application: label='Mainfest Tester' icon='res/drawable-mdpi/ic_launcher.png'
launchable-activity: name='se.whatnapp.mainfesttester.MainfestTesterActivity'  label='Mainfest Tester' icon=''
uses-feature:'android.hardware.touchscreen'
main
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--'
densities: '120' '160' '240'

And yes I know I misspelled, dirty demo ;-).

I extracted a apk from a application that I could find and could install and the only real difference is in the locale:

supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ja' 'nb' 'de' 'he' 'th' 'zh' 'nl' 'po' 'ar' 'fr' 'tr' 'es' 'it' 'ru' 'zh_TW'
densities: '120' '160' '240'

Can this be stopping the app from being download?


And this is the build.prop from the device:

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=GRI40
ro.build.display.id=11A4-D1-H1-H01-1233
ro.build.version.incremental=20110908.151019
ro.build.version.sdk=10
ro.build.version.codename=REL
ro.build.version.release=2.3.3
ro.build.date=Thu Sep  8 15:26:28 CST 2011
ro.build.date.utc=1315466788
ro.build.type=eng
ro.build.user=paco
ro.build.host=inet
ro.build.tags=test-keys
ro.product.model=V8
ro.product.brand=telechips
ro.product.name=full_m801
ro.product.device=m801
ro.product.board=m801_evm
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=telechips
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=tcc88xx
# ro.build.product is obsolete; use ro.product.device
ro.build.product=m801
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=full_m801-eng 2.3.3 GRI40 20110908.151019 test-keys
ro.build.fingerprint=telechips/full_m801/m801:2.3.3/GRI40/20110908.151019:eng/test-keys
# end build properties
#
# system.prop for TCC88xx
#

# The OpenGL ES API level that is natively supported by this device.
# This is a 16.16 fixed point number
ro.opengles.version = 131072

# This is a high density device with more memory, so larger vm heaps for it.
dalvik.vm.heapsize=24m

# density in DPI of the LCD of this board. This is used to scale the UI
# appropriately. If this property is not defined, the default value is 160 dpi.
ro.sf.lcd_density = 200

# SSG, to enable WMA, WMV and ASF file recognizing routine
ro.media.dec.aud.wma.enabled = 1
ro.media.dec.vid.wmv.enabled = 1

# SSG, to enable RA, RM and RMVB file recognizing routine
ro.media.dec.aud.ra.enabled = 1
ro.media.dec.vid.rv.enabled = 1

# SSG, if changing audio play rate is supported, set this property to 1
ro.media.aud.rate.changeable = 0

#Ä£¿éÉ豸µÄÈ«³Æ£¬ÐèÒªÓëATÖ¸Áî+CGMM·µ»ØµÄÉ豸ȫ³ÆÍêÈ«Ò»Ö£¬¸÷¸öÉ豸ȫ³ÆÓöººÅ¸ô¿ª
#ÒòΪAndroidµÄÊôÐÔÖµ³¤¶ÈΪ92¸ö×Ö·û£¬¿ÉÒÔ°´ÕÕÕâ¸öģʽ×ÔÓÉÌí¼Óɾ³ýÖ§³ÖµÄÉ豸
rild.device.list0 =EM660C
rild.device.list1 =EM660
rild.device.list2 =EM770
rild.device.list3 =E1750
rild.device.list4 =EC122
rild.device.list5 =EC169C
rild.device.list6 =E1752
rild.device.list7 =K80
rild.device.list8 =K3765
rild.device.list9 =MU509
rild.device.list10 =EM560
rild.device.list11 =29
rild.device.list12 =E1550
rild.device.list13 =E1552


#Ä£¿éµÄril¶¯Ì¬¼ÓÔØ¿âÎļþÃû³ÆÁбí
rild.libpath.list0 =/system/lib/libtcc89xx-evdo-em660-ril.so
rild.libpath.list1 =/system/lib/libtcc89xx-evdo-em660-ril.so
rild.libpath.list2 =/system/lib/libtcc89xx-wcdma-em770-ril.so
rild.libpath.list3 =/system/lib/libtcc89xx-wcdma-em770-ril.so
rild.libpath.list4 =/system/lib/libtcc89xx-evdo-em660-ril.so
rild.libpath.list5 =/system/lib/libtcc89xx-evdo-em660-ril.so
rild.libpath.list6 =/system/lib/libtcc89xx-wcdma-em770-ril.so
rild.libpath.list7 =/system/lib/libtcc89xx-wcdma-titan-ril.so
rild.libpath.list8 =/system/lib/libtcc89xx-wcdma-em770-ril.so
rild.libpath.list9 =/system/lib/libtcc89xx-wcdma-em770-ril.so
rild.libpath.list10 =/system/lib/libtcc89xx-tdscdma-ril.so
rild.libpath.list11 =/system/lib/libtcc89xx-wcdma-em770-ril.so
rild.libpath.list12 =/system/lib/libtcc89xx-wcdma-em770-ril.so
rild.libpath.list13 =/system/lib/libtcc89xx-wcdma-em770-ril.so

#²»Í¬Ä£¿é¶ÔÓ¦µÄÆô¶¯²ÎÊý£¬Èç¹ûΪauto£¬Ôò±íʾ×Ô¶¯¼ì²âÆô¶¯²ÎÊý
#Èç¹û²»Îªauto£¬ÄÇôÆäÖµ½«×÷Ϊ¸½´øµÄ²ÎÊý£¬Óë×Ô¶¯¼ì²âµÄÆô¶¯²ÎÊýÒ»Æð×éºÏ³É¸´ºÏ²ÎÊý×é
#È磺rild.libargs.list6 =-x /dev/ttyUSB1£¬Èç¹û×Ô¶¯¼ì²âµ½µÄÆô¶¯²ÎÊýΪ/dev/ttyUSB0£¬
#ÄÇô×îÖյIJÎÊý½«Îª:-d /dev/ttyUSB0 -x /dev/ttyUSB1
rild.libargs.list0 =auto
rild.libargs.list1 =auto
rild.libargs.list2 =auto
rild.libargs.list3 =auto
rild.libargs.list4 =auto
rild.libargs.list5 =auto
rild.libargs.list6 =auto
rild.libargs.list7 =-x /dev/ttyUSB1
rild.libargs.list8 =auto
rild.libargs.list9 =auto
rild.libargs.list10 =fixed:-d /dev/ttyACM2
rild.libargs.list11 =auto
rild.libargs.list12 =auto
rild.libargs.list13 =auto

#ÆäËûһЩ²ÎÊý
rild.gprs.status=unknow
rild.device=unknow0
#
# ADDITIONAL_BUILD_PROPERTIES
#
keyguard.no_require_sim=true
ro.com.android.dateformat=MM-dd-yyyy
ro.com.android.dataroaming=true
ro.ril.hsxpa=1
ro.ril.gprsclass=10
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
ro.media.dec.jpeg.memcap=20000000
ro.media.dec.vid.max_width=1920
ro.media.dec.vid.max_height=1088
ro.system.hdmi_max_resolution=fullhd
ro.system.hdmi_active=true
ro.system.composite_active=false
ro.system.component_active=false
ro.system.hdmi_portable=true
tcc.output.support.camera=0
tcc.hdmi.720p.fixed=0
ro.kernel.android.checkjni=1
ro.setupwizard.mode=OPTIONAL
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
Woodland answered 27/2, 2012 at 20:0 Comment(8)
Can you give us an example of a specific device this doesn't work on?Introspect
theouterhaven.net/2011/09/15/… geekprison.com/…Elyse
What API level are you targeting?Hindorff
Marvino: Im using this one for example, Ingenium Android 2.3 Kapacitiv Touch Screen (8GB). Android Market lists it as: Telechips V8.Woodland
Ankit: I Guess more have the same problem :-(Woodland
Wesley: <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10" /> Have tried 8 as well.Woodland
For me it's so strange that some apps still works. It should be either or that would have kept me from digging so hard. Somebody have succeeded and why!Woodland
Why isn't xlarge screens mentioned anywhere in your manifest? These are usually the ~10 inch tablets.Preciousprecipice
R
2

In order to support 10 inch tablets (and probably larger) you need to add android:xlargeScreens="true" to your manifest, in the supports-screens tag.

Another discussion about this issue: Application doesn't appear in Android Market for a certain device (Android Market Filters)

xlargeScreens was introduced in API level 9, so you may have to adjust which Android JAR file you compile with in your IDE, but you can still set your minSDKVersion to below 9.

Retardant answered 20/5, 2013 at 18:17 Comment(0)
I
0

From the Android Market and Feature-Based Filtering documentation:

Android Market filters the applications that are visible to users, so that users can see and download only those applications that are compatible with their devices. One of the ways Market filters applications is by feature compatibility.

To determine an application's feature compatibility with a given user's device, the Android Market service compares:

  • Features required by the application — an application declares features in <uses-feature> elements in its manifest with...
  • Features available on the device, in hardware or software — a device reports the features it supports as read-only system properties.

What this means is that the reason your app isn't compatible with certain devices (as per Android Market) is because you have explicitly stated features that aren't available on that device.

For example, by using android.hardware.telephony, you are effectively excluding most tablets currently available as they're not traditional phones. As such, Android Market will state that your app is not compatible with these devices.

The same logic applies to android.hardware.microphone, android.hardware.camera, etc.

Edit: @ManfredMoser correctly pointed out that you set all those boolean elements to false and since you haven't posted your entire AndroidManifest.xml, have a look through the implicit feature requirements and see if any of the permissions you requested correspond to hardware that isn't available on your test device(s).

Introspect answered 27/2, 2012 at 23:29 Comment(2)
@ManfredMoser Thanks for pointing that out, I completely missed that when reading the question :) I've edited my answer to reflect this.Introspect
Manfre/Marvin: Exactly, I have tested them all.Woodland
M
0

Please try this one:

<supports-screens
    android:resizeable="true"
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:xlargeScreens="true"
    android:anyDensity="true"/>
Mediative answered 6/3, 2021 at 8:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.