Проблемы с minSdkVersion 1.5


У нас есть проблема, связанная с файлом манифеста и свойством "android:minSdkVersion". Проблема в том, что если наша платформа 2.0 и мы используем свойство "android:minSdkVersion=3" (3 = sdk 1.5), то графика портится (в частности, разрешение приложения уменьшается до 2/3 от исходного размера, то есть, когда разрешение должно быть 480x720, оно становится 320x480). Это происходит как на эмуляторе Android, так и на устройствах Droid/Milestone (которые являются платформами 2.0). Когда мы переключаем свойство на "android: minSdkVersion=4" (4 = sdk 1.6), проблема решается, но когда мы хотим поставить эту версию на платформу 1.5, Android не позволяет нам установить ее. Это поможет нам узнать о любом конфликте, касающемся графики в 2.0 sdk, или о любой известной проблеме вокруг "android:minSdkVersion" в манифесте.

Спасибо!

3 6

3 ответа:

Если вы укажете targetSdkVersion , а также minSdkVersion, ваше приложение начнет корректно работать на всех платформах.

Так что есть запись в вашем манифесте, как это:

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

Это описано в Android API Levels Страница в документации разработчика Android.

Я предполагаю, что вы указываете разные активы для разных плотностей экрана , используя каталоги, такие как res/drawable-mdpi, res/drawable-hdpi и так далее?

Android 1.6 (API level 4) был первой версией SDK для поддержки нескольких плотностей экрана, поэтому он знает значение этих имен каталогов и поэтому может успешно выбрать правильный drawable из ваших папок res для конкретного устройства, на котором он работает.

Однако, если вы запускаете приложение, разработанное таким образом на Android 1.5 device (API level 3), то фреймворк не знает, что он должен использовать только ресурсы medium DPI (так как нет устройств Android 1.5, выпущенных с чем-либо, кроме экранов medium DPI (AFAIK)). Таким образом, в этом случае фреймворк может в конечном итоге выбрать, казалось бы, случайным образом из всех доступных ресурсов в вашем APK, предназначены ли они для экранов высокой плотности или экранов средней плотности, или что угодно.

Однако я не видел обратного, что происходит с вами, т. е. устройство 2.0, по-видимому, выбирает рисоваемые объекты для другой плотности экрана или предполагает ее.

Я хотел бы убедиться, что ваш res макет каталога является правильным, и что вы используете независимые от плотности измерения в каждом из ваших макетов по мере необходимости.

Но если вы хотите поддерживать несколько разрешений экрана и плотности и поддерживают устройства Android 1.5 в одном APK, то я не верю, что это возможно.

Добавьте этот тег в свой AndroidManifest.xml для поддержки нескольких плотностей экрана.

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