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
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.