In some cases, when trying to update your application with a new version in Developer Portal, you might get a warning that reads: "Reduced device support. Device support has been reduced from the previous version. Some existing customers will not be able to upgrade. To resolve manifest conflicts, Amazon recommends editing the manifest to retain your current device support."
If you are seeing this message about reduced device support, it's most likely because the app's manifest is specifying some features as required for your application to function, while the devices you are trying to target do not support those features. This could happen even if you did not manually edit the manifest, as some IDEs can add that for you behind the scenes.
In Dev Portal, if you look at the ‘Device Support’ section of your app under the ‘Binary File(s)’ tab, you may see that some of the devices are marked as unsupported because your app's manifest requires certain features that are not present on those devices. For example, your app's manifest might require that a device have a GPS, but most / older Kindle devices don't have it, therefore they get marked as unsupported. To correct that, please login to your Dev Portal account, click on your app, switch to 'Binary File(s)' tab, then in 'Device Support' section click the 'View Device Support' link on the right. In the popup window hover your mouse cursor over the question mark near the device name and you will see what elements are unsupported, for example you might see something like this in the tooltip / help text:
Your APK manifest requires capabilities not present on this device. Learn more
Luckily, these issues are really easy to fix. In your Android manifest you can mark those features as not required. For example, in your manifest you might have something like:
<uses-feature android:name="android.hardware.telephony" />
however if telephony is not absolutely essential for the app to function, add required="false", like so:
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
"When you declare android:required="false" for a feature, it means that the application prefers to use the feature if present on the device, but that it is designed to function without the specified feature, if necessary."
Check what other features are being marked as not supported for other device models by hovering your mouse cursor on those device names. After you modify your app's AndroidManifest.xml file, rebuild its project to get a new .apk file and upload it as a new version for that app. For that, please login to your Dev Portal account, go into your app details in the Dashboard, click the 'Add Upcoming Version' link next to your application's title and icon, and in the 'Binary File(s)' tab upload your new .apk file, and then finally save / submit.
If you are still experiencing any issues after that, please raise a Contact Us case with us within your Developer Portal account and we will investigate it further.
Keywords: reduced device support, version update, manifest capabilities, manifest features