14

我有一个已部署到 Play 的应用程序,并且与运行 2.1 或更高版本的任何设备兼容;AndroidManifest.xml 中没有定义特殊限制或要求。

用户曾多次抱怨尝试通过 Google Play 安装该应用程序,但收到不兼容的消息。在所有这些情况下,侧载应用程序都能完美运行。

更深入地研究这个问题,似乎在所有情况下,报告问题的人都在使用未安装 Google Play 的设备。IE。该设备可能无法通过 Google 的 CTS。

话虽如此,他们可以通过 Google Play 安装其他应用程序,但不能安装我们的应用程序。同样,将我们的应用程序侧载到这些设备上也可以正常工作。有人知道为什么会这样吗?我认为这一定是我在 AndroidManifest.xml 中做错了,但我没有发现任何可疑之处。

编辑:这是 AndroidManifest.xml,为了保护无辜者的名字而进行了修改:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.foo.bar"
      android:versionCode="1"
      android:versionName="@string/global_app_version">
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <application android:label="@string/global_app_short_name" android:icon="@drawable/app">
        <activity android:name=".HomeActivity"
                  android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter android:label="@string/global_app_short_name">
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity android:name=".AActivity"
                  android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter android:label="@string/global_app_short_name">
                <action android:name="android.intent.action.VIEW"/>
            </intent-filter>
        </activity>

        <activity android:name=".BActivity"
                  android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter android:label="@string/global_app_short_name">
                <action android:name="android.intent.action.VIEW"/>
            </intent-filter>
        </activity>

        <activity android:name=".CActivity"
                  android:launchMode="singleTask"
                  android:theme="@android:style/Theme.Black.NoTitleBar"
                  android:windowSoftInputMode="stateHidden">
            <intent-filter android:label="@string/global_app_short_name">
                <action android:name="android.intent.action.VIEW"/>
            </intent-filter>
        </activity>

        <activity android:name=".DActivity"
                  android:launchMode="singleTask"
                  android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter android:label="@string/global_app_short_name">
                <action android:name="android.intent.action.VIEW"/>
            </intent-filter>
        </activity>

        <activity android:name=".EActivity"
                  android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter android:label="@string/global_app_short_name">
                <action android:name="android.intent.action.VIEW"/>
            </intent-filter>
        </activity>

        <activity android:name=".FActivity"
                  android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter android:label="@string/global_app_short_name">
                <action android:name="android.intent.action.VIEW"/>
            </intent-filter>
        </activity>

        <!-- This activity is invoked whenever an xxx is opened -->
        <activity android:name=".GActivity"
                  android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter android:label="@string/global_app_short_name">
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.intent.action.EDIT"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:mimeType="application/xxx"/>
                <data android:mimeType="application/yyy"/>
                <data android:mimeType="application/zzz"/>
                <data android:mimeType="application/aaa"/>
                <data android:mimeType="application/bbb"/>
            </intent-filter>
        </activity>
    </application>
</manifest> 
4

4 回答 4

8

我找到了罪魁祸首 - 复制保护已启用。来自 Google 关于设置的说明:http: //developer.android.com/guide/google/play/filters.html

要复制保护应用程序,请在为应用程序配置发布选项时将复制保护设置为“开”。Google Play 不会在开发者设备或未发布的设备上显示受版权保护的应用程序。

换句话说,必须侧载 Google Play 只是成为“未发布设备”/无法通过 Google CTS 的设备的副作用。无论如何,禁用复制保护解决了这个问题。

于 2012-06-26T17:05:11.693 回答
0

也许他们正在运行的硬件与您的应用程序不兼容?也许您需要触摸屏而他们没有;也许您需要电话而他们没有?

请注意,根据您的目标 api,您可能会得到一些隐含的硬件要求。

无论如何,尝试从他们那里获取日志将是最有帮助的!

于 2012-06-22T15:04:47.940 回答
0

也许受影响的用户可以尝试在他们的设备上重置 Google Play Store 应用:

菜单 --> 设置 --> 应用程序 --> Google Play 商店

然后点击“强制关闭”和“清除数据”

然后再次启动 Google Play 商店,登录并再次尝试安装您的应用程序。

于 2012-06-25T07:36:58.513 回答
0

如果您有任何应用内产品,或者如果您正在出售应用程序以赚钱,那么 Google Play 会自动将您从它不支持计费的某些国家/地区中过滤出来。您可以在此处向 Google 发送电子邮件询问。

于 2012-06-26T14:41:40.177 回答