“您的设备与此版本不兼容”
Posted
技术标签:
【中文标题】“您的设备与此版本不兼容”【英文标题】:"your device isn't compatible with this version" 【发布时间】:2012-05-20 01:04:18 【问题描述】:我在 Play 商店中放置了一个应用,而我的朋友在两台设备上运行 4.0.3,在尝试安装我的应用时收到以下消息:。
一个设备允许它安装,而另一个不允许。我允许 API 3-15 并且两个设备都是 4.0.3。有什么问题?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.snotyak.basicfuelcalcpro"
android:versionCode="2"
android:versionName="1.2.3" >
<uses-sdk
android:minSdkVersion="4" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".CalcApp"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MainTheme" >
<activity android:name=".CalcActivity" >
</activity>
<activity
android:name=".PrefsActivity"
android:label="@string/prefs_name" />
<activity
android:name=".CalcTabView"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AboutActivity"></activity>
<activity android:name=".HistoryActivity" />
<activity android:name=".AnalysisActivity" />
</application>
</manifest>
【问题讨论】:
发布 AndroidManifest.xml 和您朋友拥有的名称设备。不要特别注意清单中的任何use-feature
和permission
标签。
我的朋友有一台 Galaxy S2(不工作),它在他的 Transformer Prime 上工作。
此时可能是 Android Market 设置的限制,您可能不小心过滤掉了设备。有关详细信息,请查看我更新的帖子。还可以在尝试安装 apk 时查看 ADB 以了解详细信息。使用命令 adb install Filename.apk 将其安装到 Galaxy。
【参考方案1】:
由于这 2 台设备的版本相同,因此导致不兼容消息的逻辑解释是设备不同,并且应用正在使用其中一个不支持的功能。查看您的 AndroidManifest.xml 并密切注意 uses-feature
和 uses-permission
标记。 Google Play 商店将使用这些过滤掉不兼容的设备。
例如,如果您有<uses-permission android:name="android.hardware.camera">
,而其中一部手机没有摄像头,那么它将被过滤掉。因为请求权限意味着您的应用需要摄像头才能正常运行。您可以通过在 AndroidManifest.xml 中添加 <uses-feature android:name="android.hardware.camera" android:required="false" />
来解决此问题。当然,您还需要代码来保护您的应用在相机不可用时不会尝试访问它。
查看此页面了解更多信息,Google Play Filters。
Google Play 可以指出导致设备被过滤掉的原因。它非常简洁,但转到页面底部的设备下并选择显示设备,然后筛选 Galaxy 以验证它是否基于清单排除。
【讨论】:
我只有仔细检查AndroidManifest.xml
文件中的<uses-feature>
标签。听起来您的应用程序需要其中一个设备不支持的功能。
您还应该检查您的AndroidManifest.xml
中是否声明了以下内容,
<uses-sdk
android:minSdkVersion="3" />
您希望您的应用程序适用于运行 API 3 及更高版本(而不是 API 3 到 15)的设备。上面的代码将确保您的应用程序适用于 API 3 以上的所有设备。请注意,您通常不希望使用 android:maxSdkVersion
属性(如果您当前正在使用它)。
【讨论】:
怀疑这就是答案。这是一个硬件过滤器,可能导致不兼容。 啊,对...没看到两个设备都在运行 4.0.3。在这种情况下,我需要更多信息来确定到底出了什么问题…… 我没有任何我摆脱了
<uses-sdk android:targetSdkVersion="15" />
现在可以使用了。
【讨论】:
【参考方案4】:总是在 Manifest 中定义的东西,Google Playstore 会将您的应用过滤到某些设备上。 比如:
-
声明了特定的目标 SDK 版本。
定义的相机权限(将过滤没有相机的设备)
使用功能相机。
支持 SIM 卡的设备。
带 Wifi 的设备。
最小 SDK 版本。
因此,您必须记住,您必须达到目标的最大设备数,您必须选择退出某些功能和权限。
希望这能让您对发布应用有所了解。
【讨论】:
【参考方案5】:我的一位测试人员遇到了同样的问题,如果测试人员使用的是旧的 android,您必须为该用户提供一个网络链接才能接受测试邀请,他/她必须打开该链接在浏览器中并接受测试邀请。
您可以从 google play console 获取链接,进入测试轨道摘要页面,打开测试人员选项卡,向下滚动到“测试人员如何加入您的测试”,在这里您会找到两个链接,一个用于 android,一个用于 Web ,复制一个网页版并发送给那些测试人员,他们接受测试邀请后,就可以从另一个链接访问应用程序,不会出错。
【讨论】:
以上是关于“您的设备与此版本不兼容”的主要内容,如果未能解决你的问题,请参考以下文章
在 Play 商店中,“您的设备与此版本不兼容” - 可能是由于相机