Android应用程序在很多设备上都不兼容

Android应用程序在很多设备上都不兼容,android,incompatibility,Android,Incompatibility,我是Android Play Store上发布的一款颇受欢迎的游戏的开发者。直到最新版本,大多数设备(如果不是全部的话)都能够下载并享受这个游戏。然而,在这个最新版本中,许多较旧的设备(~2岁?)开始认为游戏与他们的设备“不兼容” 我diff编辑了两个版本的清单文件,弹出的唯一区别是更改为android:versionName,android:versionCode 我认为这可能是因为APK对于设备来说太大了。虽然我们确实有大约49MB的APK,但它只从这个版本的48.66->48.68增长,所

我是Android Play Store上发布的一款颇受欢迎的游戏的开发者。直到最新版本,大多数设备(如果不是全部的话)都能够下载并享受这个游戏。然而,在这个最新版本中,许多较旧的设备(~2岁?)开始认为游戏与他们的设备“不兼容”

diff
编辑了两个版本的清单文件,弹出的唯一区别是更改为
android:versionName
android:versionCode

我认为这可能是因为APK对于设备来说太大了。虽然我们确实有大约49MB的APK,但它只从这个版本的48.66->48.68增长,所以我很难相信这就是原因

不兼容设备的列表非常广泛,但以下是一些突出的设备

银河系连接
三星galaxy tab 10.1
三星Galaxy Tab 7.7
eeepad asus变压器tf101
摩托罗拉XOOM
Acer Iconia标签A700

此列表直接来自我们(以前?)的客户,但我已在Galaxy tab 10.1和Transformer上对此进行了验证。如果有帮助的话,表2和Nexus7可以看到它

更新:这些设备在开发人员控制台中显示为兼容

这些事情的决定方式最近有什么变化吗?是否有任何服务告诉我们为什么该应用程序被认为是不兼容的

下面是我的应用程序的权限部分

<permission android:name="com.nubee.japanlife.permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.nubee.japanlife.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_SMS" /> 
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7"/>

正如我所见,您在应用程序中拥有许多权限,而在大多数设备/平板电脑中,这些权限都不允许您通过Play Store进行安装。根据实际正在做的应用程序和在什么样的设备(电话/平板电脑)中使用它,在大多数情况下,你应该考虑使用:例如:

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

首先,这只是一个例子!我在我的一个应用程序中这样做,我允许用户拨打某些号码,这就是为什么我需要
电话
权限,但这对我的应用程序不是必需的。这就是为什么我使用
use\u功能
required=false


希望这对你有帮助

共享您的清单权限部分…@PankajKumar我已经添加了您请求的权限。我之前没有共享它的原因是,问题只出现在最新版本中,正如我所提到的,在上一版本中权限没有更改。权限是正确的。。。您应该将android:targetSdkVersion=“7”
更改为ICS或JellyBean@PankajKumar是的,我一直在考虑,只要在新设备中去掉菜单虚拟按钮。。但对可能出现的问题保持警惕。。但这不应该导致这样的权利?不不。。这些一定不会引起任何问题。嗨,我理解这一点,我会在即将发布的版本中这样做,但由于一些平板电脑仍然可以使用此功能,而那些无法在上一版本中使用的平板电脑仍然可以使用此功能,这是否可能会修复它?我曾经遇到过一些平板电脑的情况,我可以使用usb存储在一些平板电脑上安装应用程序,但若我尝试使用Play Store,它不会让我使用,但在其他一些平板电脑中,我可以从这两种设备(usb/Store)安装应用程序。因此,在我看来,这取决于设备,因为一些平板电脑具有拨打电话等功能。但据我所知,并且据我在开发过程中所测试的情况,这种使用
功能的技巧使我的应用程序可用于更多设备。您可以对其进行测试,使用更改的清单创建一个新的apk,上载它,但不发布它,我认为您将能够看到受支持的设备。在这里,您提到了我的主要关注点,这一点我可能应该提到。。以上设备目前在开发者控制台中被列为兼容设备。据我所知,大多数设备都具有电话/sms/mms功能。我认为你必须考虑的是,你的应用程序到底在做什么,如果用户在没有这些权限的情况下能够正确地使用它。