8

我在 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>
4

5 回答 5

12

由于这两个设备的版本相同,因此导致不兼容消息的逻辑解释是设备不同,并且应用程序正在使用其中一个不支持的功能。查看您的 AndroidManifest.xml 并密切关注uses-featureuses-permission标签。Google Play 商店将使用这些过滤掉不兼容的设备。

例如,如果您有<uses-permission android:name="android.hardware.camera">并且其中一部手机没有摄像头,那么它将被过滤掉。因为请求权限意味着您的应用需要摄像头才能正常运行。您可以通过添加<uses-feature android:name="android.hardware.camera" android:required="false" />到您的 AndroidManifest.xml 来解决此问题。当然,您还需要代码来保护您的应用在相机不可用时不会尝试访问它。

查看此页面了解更多信息,Google Play 过滤器

Google Play 有办法指出导致设备被过滤掉的原因。它非常简洁,但转到页面底部的设备下并选择显示设备,然后过滤 Galaxy 以验证它是否基于清单排除。

谷歌播放过滤器

于 2012-05-20T01:34:19.290 回答
9

仔细检查文件<uses-feature>中的标签AndroidManifest.xml。听起来您的应用程序需要其中一个设备不支持的功能。

您还应该检查您的AndroidManifest.xml,中是否声明了以下内容

<uses-sdk
    android:minSdkVersion="3" />

您希望您的应用程序适用于运行 API 3 及更高版本(而不是 API 3 到 15)的设备。上面的代码将确保您的应用程序适用于 API 3 以上的所有设备。请注意,您通常不想使用该android:maxSdkVersion属性(如果您当前正在使用它)。

于 2012-05-20T01:30:07.940 回答
1

我摆脱了

  <uses-sdk android:targetSdkVersion="15" /> 

现在可以了。

于 2012-05-20T18:10:48.857 回答
1

我的一位测试人员遇到了同样的问题,如果测试人员使用的是旧的 android,您必须为该用户提供一个网络链接才能接受测试邀请,他\她必须在浏览器中打开该链接并接受测试邀请。

您可以从 google play console 获取链接,进入测试轨道摘要页面,打开测试人员选项卡,向下滚动到“测试人员如何加入您的测试”,在这里您会找到两个链接,一个用于 android,一个用于 Web,复制一个用于网络并将其发送给那些测试人员,在他们接受测试邀请后,他们可以从另一个链接访问该应用程序并且不会出现错误。

于 2020-12-13T09:10:53.150 回答
1

总是在 Manifest 中定义的东西,Google Playstore 会将您的应用过滤到某些设备上。就像是:

  1. 声明了特定的目标 SDK 版本。
  2. 定义相机权限(将过滤没有相机的设备)
  3. 使用功能相机。
  4. 启用 SIM 卡的设备。
  5. 带 Wifi 的设备。
  6. 最小 SDK 版本。

因此,您必须记住,您必须达到目标的最大设备数,您必须选择退出某些功能和权限。

希望这能让您对发布 App 有所了解。

于 2018-03-05T06:40:11.290 回答