Приложение не мороженое Сэндвич совместимый

Я разработал приложение для Android, которое не может быть загружено на устройства Android ICS с рынка. Просмотр рынка с помощью устройства 4.x позволяет увидеть "несовместимое предупреждение" и не может продолжить загрузку. Приложение имеет настройку minSdkVersion 7. Она хорошо работает на устройствах 2.x и 3.x для Android. Я не знаю, что делать и как я могу это исправить. Нужно ли мне настраивать что-нибудь особенное, чтобы быть совместимым с ICS? Я не могу найти никакой информации по этому вопросу.

Обновление: Я только что получил подтверждение, что установка APK вручную работает на устройстве 4.0. Он просто не будет устанавливать через рынок! Опять же, это показывает как "несовместимое для вашего устройства" на рынке. Любые идеи?

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nl.tmd.natuurijs" 
android:versionCode="7" android:versionName="1.1.3">

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application android:name=".NatuurijsApplication"
    android:icon="@drawable/icon" android:label="@string/app_name">

    <uses-library android:name="com.google.android.maps" android:required="false"/>

    <!-- Main Activity -->
    <activity android:name=".MainActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme" android:launchMode="singleTask" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="natuurijs" android:host="main" />
        </intent-filter>
    </activity>

    <!-- Map Activity -->
    <activity android:name=".NatuurijsMapActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme" />

    <!-- Map Activity -->
    <activity android:name=".NatuurijsAddVenueActivity" android:label="@string/app_name"
        android:windowSoftInputMode="adjustPan" android:theme="@style/NatuurijsTheme">
    </activity>

    <!-- Locations list Activity -->
    <activity android:name=".NatuurijsLocationsActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme">
    </activity>

    <!-- Location details Activity -->
    <activity android:name=".NatuurijsLocationDetailsActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme">
    </activity>

    <!-- Select a location by hand -->
    <activity android:name=".SelectLocationActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme">
    </activity>

    <!-- Info Activity-->
    <activity android:name=".InfoActivity" android:label="@string/app_name"
        android:theme="@style/NatuurijsTheme">
    </activity>

</application>
</manifest>

Может ли это быть темой? тема не является чем-то особенным. Он просто наследуется от Theme.Black.NoTitleBar

<style name="NatuurijsTheme" parent="android:Theme.Black.NoTitleBar"></style>

Ответ 2

Я получал похожие жалобы от своего приложения. Одна вещь, которую я заметил с моим приложением, заключалась в том, что я использовал Tab Activity, который теперь устарел в Android 4.0+. (Телефоны без жесткого ключа меню не смогут использовать меню опций, если вы используете TabActivity/TabHost, что является проблемой.) Я заменил свои вкладки обычными кнопками для навигации по приложениям, и я считаю, что это могло бы устранить мои проблемы совместимости с ICS.

Кроме того, я попробовал обновить мой манифест android: minSdkVersion и ADDED android: targetSdkVersion, но я не уверен, что на самом деле они что-то исправили.

Примечание. Если вам нужна помощь в поиске устаревшего кода, попробуйте сказать Eclipse, чтобы показать устаревшую функциональность как ошибку, изменив свойства проекта.


EDIT:

Дополнительная информация: По-видимому, у меня все еще есть некоторые проблемы с совместимостью с ICS, поэтому вышеизложенное не единственное, что мне нужно исправить. Все еще не знаю, что еще я могу сделать. В моих исследованиях я обнаружил, что, по-видимому, люди с пользовательскими ROMS иногда имеют "неправильные значения XML", что заставляет магазин Google Play сказать, что они несовместимы. Возможно, загрузка через веб-версию Google Play и запрос пользователей на удаленную установку там могут решить наши проблемы.

ИЗМЕНИТЬ 2:

Ваше приложение больше не должно использовать защиту от копирования в разделе "Параметры публикации" в разделе публикации Google Play Store.

Ответ 3

Скорее всего, OEM-сборка используемого вами устройства Android имеет плохое значение в файле xml, это не является неслыханной проблемой, когда дело доходит до Play on ICS.

Ответ 4

Кроме того, что говорит Deadeye, я предполагаю, что это связано с отсутствием поддержки экрана (устройства 4.X.X имеют тенденцию иметь большие экраны или xlargeScreens).

Вам нужно будет скомпилировать по крайней мере 2.3.3 и добавить в манифест:

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

Я думаю, что это решит вашу проблему.

Ответ 5

попробуйте в манифесте

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="14" />

даже если это не решит вашу проблему, настоятельно рекомендуется, так как это позволит ускорить аппаратное ускорение на устройствах с поддержкой 3.0+, это скроет ненужную "меню" на экранной кнопке в нижней системной панели (на устройствах, которые показывают на экране назад, home и т.д.), и он позволяет инструментам разработки Android обнаруживать проблемы совместимости между версией Android в вашем коде. Вы пробовали обновить свой Android-модуль sdk и ide?