2012-02-04 1 views
10

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

Обновление: Я только что получил подтверждение, что установка 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

Покажите нам свой 'AndroidManifest.xml'. Можете ли вы установить и запустить приложение на устройстве ICS 4.x вручную? – theomega

+0

У меня нет устройства под рукой, чтобы проверить его. Разработка для Android - это больше для меня хобби. Я собираюсь дать ему симулятор, но я хочу избежать использования симулятора, потому что для меня это медленное и никоим образом не хорошее сравнение. –

+0

Не может быть, что проблема не вызвана версией SDK, а потому, что некоторых неподдерживаемых размеров экрана? – bvanvelsen

ответ

2

Более вероятно, строить OEM-Андроид устройства вы используете имеет плохое значение в файл XML, где-то, это не неслыханные проблемы, когда речь идет о Играйте на ICS.

3

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

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

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


EDIT:

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

EDIT 2:

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

2

Кроме того, что говорит 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" /> 

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

2

попробовать в вашем манифесте

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

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