Приложение для Android несовместимо с устройствами, загружающими Google Play.

У меня есть приложение, развернутое в 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> 

person Nick    schedule 22.06.2012    source источник
comment
У меня такая же проблема, и я не знаю, что сказать потребителям...   -  person Mark    schedule 22.06.2012
comment
Используете ли вы что-нибудь, связанное с Play Store, например. Покупки в приложении или пакет лицензирования LVL? Что-то вроде этого будет наиболее вероятным виновником.   -  person Alex Curran    schedule 22.06.2012
comment
Нет, на самом деле единственным разрешением, которое мы используем, является хранилище, т.е. SD-карта и т. д., если она существует. Это также бесплатное приложение.   -  person Nick    schedule 22.06.2012
comment
Я тоже подозреваю, что ответ можно найти в вашем манифесте — пожалуйста, разместите его!   -  person Darshan Rivka Whittle    schedule 25.06.2012
comment
Размещено по вашему запросу!   -  person Nick    schedule 26.06.2012
comment
Потенциально глупый вопрос/утверждение, но вы упомянули в одном из комментариев ниже, что они могут увидеть его на веб-рынке. Я видел, как это происходило, когда на их телефоне была включена фильтрация контента (скрытие приложений с рейтингом X и т. д.). Они не видят на телефоне, и игра говорит, что это несовместимо, если они попытаются установить (несовместимо с их настройками контента). Однако вы можете увидеть его на сайте, но при попытке установить вы получаете то же сообщение.   -  person melodiouscode    schedule 26.06.2012
comment
@jamesakadamingo - Хотя я был бы удивлен, если бы наше приложение было отфильтровано таким образом, поскольку это просто приложение для повышения производительности, его определенно стоит проверить. Я дам вам знать, что мы узнаем.   -  person Nick    schedule 26.06.2012
comment
@nick Я видел несколько странных фильтров, вызванных этими настройками. Даже Google+ будет заблокирован, если вы отключите приложения для взрослых!   -  person melodiouscode    schedule 26.06.2012


Ответы (4)


Нашел виновника - была включена Защита от копирования. Из примечаний Google к настройке: http://developer.android.com/guide/google/play/filters.html

Чтобы защитить приложение от копирования, установите для защиты от копирования значение «Вкл.» при настройке параметров публикации приложения. Google Play не будет показывать защищенные от копирования приложения на устройствах разработчиков или еще не выпущенных устройствах.

Другими словами, необходимость боковой загрузки Google Play — это просто побочный эффект «невыпущенного устройства» / устройства, которое не работает в Google CTS. В любом случае, отключение защиты от копирования решило проблему.

person Nick    schedule 26.06.2012

Может быть, оборудование, на котором они работают, несовместимо с вашим приложением? Может быть, вам нужен сенсорный экран, а у них его нет; может вам нужна телефония, а у них ее нет?

Обратите внимание, что в зависимости от вашего целевого API вы можете получить некоторые неявные требования к оборудованию.

В любом случае, попытка получить от них журнал будет очень полезной!

person Pedro Loureiro    schedule 22.06.2012
comment
Если бы это было что-то из вышеперечисленного, то боковая загрузка не сработала бы. Какой журнал я получу от них? Нет установки приложения = журнал не создан. - person Nick; 22.06.2012
comment
вы можете увидеть журнал устройства, в котором говорится, в чем была проблема (т. Е. PackageManager сообщит что-то вроде «Не удалось установить приложение из-за несовместимости XXX»). Это не журнал вашего приложения, а системный журнал что-то говорит. - person Pedro Loureiro; 22.06.2012
comment
Приложение не отображается в Google Play на устройстве (поскольку Play считает, что оно несовместимо), единственный способ, который мы нашли до сих пор, даже попытаться установить через Play, — это перейти на play.google.com, найти приложение и нажать install, а затем выберите устройство для отправки приложения, которое затем представляет ошибку, но не приводит к сообщениям журнала от package mgr. - person Nick; 22.06.2012
comment
о, я неправильно понял вашу проблему в первый (и второй) раз. Прости - person Pedro Loureiro; 22.06.2012

Возможно, затронутые пользователи могут попытаться сбросить настройки приложения Google Play Store на своих устройствах:

Меню --> Настройки --> Приложения --> Магазин Google Play

Затем нажмите «Принудительно закрыть» и «Очистить данные».

Затем снова запустите Google Play Store, войдите в систему и попробуйте снова установить приложение.

person ramdroid    schedule 25.06.2012

Если у вас есть какие-либо продукты в приложении или если вы продаете приложение за деньги, Google Play автоматически отфильтровывает вас из определенных стран, для которых он не поддерживает выставление счетов. Вы можете отправить запрос в Google по электронной почте здесь.

person D.T. Atkinson    schedule 26.06.2012
comment
Кто-то еще предположил, что выше - ничего подобного не используется. Приложение на 100% бесплатное. - person Nick; 26.06.2012
comment
Ааа, извините за мою ошибку - все же стоит спросить их об этом, однако, у них больше информации об этом, чем у нас! :) - person D.T. Atkinson; 26.06.2012
comment
определенно - это точно стоит +1 :) - person Nick; 26.06.2012