Dilip Dilip - 18 days ago 13
Android Question

APK not available for tablet

I have published an

apk
in beta and it's not available for tablet showing "You device is not compatible with this version" but I have not done any restriction for the tablet devices. I have already gone through compatibility doc and follows all guidelines. All the activities in portrait mode only. your help will be greatly appreciated. Thanks

Manifest:

minSdkVersion 18
targetSdkVersion 23
<uses-feature
android:name="android.hardware.touchscreen.multitouch"
android:required="false" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.flash"
android:required="false" />
<uses-feature
android:name="android.hardware.bluetooth"
android:required="false" />
<uses-feature
android:name="android.hardware.microphone"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature
android:name="android.hardware.screen.portrait"
android:required="false" />

<permission
android:name="com.iod.permission.C2D_MESSAGE"
android:protectionLevel="signature" />

<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="com.iod.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CAMERA" />


aapt dumb badging Log:

uses-feature-not-required: name='android.hardware.bluetooth'
uses-feature: name='android.hardware.camera'
uses-feature: name='android.hardware.camera.autofocus'
uses-feature: name='android.hardware.camera.flash'
uses-feature-not-required: name='android.hardware.microphone'
uses-feature-not-required: name='android.hardware.screen.portrait'
uses-feature-not-required: name='android.hardware.telephony'
uses-feature-not-required: name='android.hardware.touchscreen.multitouch'
uses-feature: name='android.hardware.touchscreen'
uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps'
main
other-activities
other-receivers
other-services
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'

Answer

After a long time spend I find the exact problem, It was library issue as library has camera feature required so it overrides. To find it out, I read the build log manifest-merger file properly. To solve this problem, used tools:replace="required" with uses-feature.

<uses-feature
        android:name="android.hardware.camera"
        android:required="false"
        tools:replace="required" />

Hope this should help others to find out this kind of issues.