Подтвердить что ты не робот

Как указать минимальный SDK в телефонном разговоре? Он игнорирует android-minsdkversion в config.xml

Это приложение phonegap 3.5/cordova 3 android. В www/config.xml у меня есть:

<preference name="android-minSdkVersion" value="19">
<preference name="android-targetSdkVersion" value="19">

Однако, когда я его создаю, он создает AndroidManifest.xml с:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />

В результате люди с версиями SDK ниже 19 могут установить мое приложение из магазина. Где он получает 10 из и как я могу его изменить? Из-за странности с Viewport поведение моего приложения подозрительно на ОС ниже 4.4, и я уже получаю 1-звездочный отзыв от пользователей 4.2.2.

4b9b3361

Ответ 1

С более старой версией CLI, я использовал для изменения вручную AndroidManifest.xml, чтобы изменить несколько настроек (режим запуска, minsdk...), как вы делаете в своем ответе.

И с Cordova 3.5.something все стало не так, и некоторые изменения были потеряны при каждом создании проекта.

Теперь я добавил эти строки в config.xml, и настройки автоматически обновляются:

<platform name="android">
    <preference name="AndroidLaunchMode" value="singleTop"/>
    <preference name="android-minSdkVersion" value="14" />
    <icon src="res/android/xhdpi.png" />
    <icon src="res/android/ldpi.png" density="ldpi" />
    <icon src="res/android/mdpi.png" density="mdpi" />
    <icon src="res/android/hdpi.png" density="hdpi" />
    <icon src="res/android/xhdpi.png" density="xhdpi" />
</platform>

Преимущество в том, что теперь я могу удалить платформу Android и воссоздать ее, не теряя при этом никаких настроек.

Поскольку Phonegap обновляется, чтобы быть встроенным с кордорой, предпочтения в config.xml должны работать с новой версией, и, возможно, вы увидите, что ваше обновление вручную потеряно, как это случилось со мной...

Ответ 2

Изменить и улучшить ответ:

Чтобы ответить на это, лучше начать с версии Build или уровня API. Уровень API - это целочисленное значение, которое однозначно идентифицирует версию API-интерфейса Framework, предлагаемую версией платформы Android.

API Level 8 == android Platform 2.3(ginger bread)
API Level 17 == android Platform 4.2(jelly bean)

Чтобы увидеть полное сравнение APILevel и его AndroidPlatform, проверьте здесь


targetSdk должен использоваться только по телефонной карте. Это говорит о том, что для создания этого приложения можно использовать определенную APILevel. Это не означает, что пользователь может загружать ваше приложение. Это больше похоже на "Приложение оптимизировано для этого APILevel". Пример

 <preference name="android-targetSdkVersion" value="17"/> //android 4.2

Это приложение построено (оптимизировано) с использованием APILevel 17 (который является jellyBean или androidPlatform4.2)


minSdk, с другой стороны, ограничьте пользователя/устройство. minSdk - минимальное требование Sdk для пользователя/устройства. Любое устройство с APIlevel менее APILevel, используемое minSdk, не сможет загрузить это приложение. Пример:

 <preference name="android-minSdkVersion" value="11"/> //android 3.0

чтобы загрузить это приложение, устройство должно хотя бы запустить на Android 3.0 (APILevel 11)


Наконец, когда используется вместе:

<preference name="android-minSdkVersion" value="11"/> //android 3.0

 <preference name="android-targetSdkVersion" value="17"/> //android 4.2

Это утверждение означает, что это приложение оптимизировано для android4.2 с минимальным требованием android 3.0


Doc: http://docs.build.phonegap.com/en_US/configuring_preferences.md.html#Preferences

Ответ 3

ШАГ 1) Теги yourapp/config.xml <platform name="android"> добавляют два предпочтительных

<platform name="android">
    <preference name="android-minSdkVersion" value="14" />
    <preference name="android-targetSdkVersion" value="19" />
</platform>

ШАГ 2) cordova platform rm android запустить код CMD

ШАГ 3) cordova platform add android запустить код CMD Проверьте файл AndroidManifest.xml, если он выглядит ниже

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

все в порядке:)

Ответ 4

Для всех, кто ищет способ найти конкретную целевую версию, я нашел следующее: У меня была такая же проблема. Мне пришлось изменить цель:

Цель проекта.

целевой = андроид-22 Это должно быть сделано в двух файлах:

myApp/platform/android/project.properties myApp/platform/android/CordovaLib/project.properties

Также манифест должен быть обновлен:

От ответа Себастьяна, помещенного здесь: Кордова: [Ошибка: установите Android-цель: android-21 "

Ответ 5

Я смог исправить это, вручную редактируя платформы /android/AndroidManifest.xml:

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

Телефонная документация, по-видимому, подразумевает, что этот файл должен наследовать значение предпочтения android-minSdkVersion, но его необходимо изменить вручную. Насколько я знаю, предпочтение android-minSdkVersion не работает.