Как я могу указать минимальный SDK в PhoneGap? Это игнорирует 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.
5 ответов
С более старой версией Cordova CLI я использовал для изменения вручную AndroidManifest.xml
изменить несколько настроек (режим запуска, minsdk...), как вы делаете в своем ответе.
И с Кордовой 3.5. что- то пошло не так, и некоторые изменения были потеряны каждый раз, когда я строил проект.
Теперь я добавил эти строки в 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 обновляется, чтобы быть в соответствии с Cordova, предпочтения в config.xml
должен работать с новой версией, и, возможно, вы увидите, что обновленное руководство потеряно, как это случилось со мной...
ШАГ 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" />
все хорошо:)
Изменить и улучшить ответ:
Чтобы ответить на это, лучше начать с версии сборки или уровня API. Уровень API - это целочисленное значение, однозначно идентифицирующее версию API платформы, предлагаемую версией платформы Android.
API Level 8 == android Platform 2.3(ginger bread)
API Level 17 == android Platform 4.2(jelly bean)
Чтобы увидеть полное сравнение API Level и его AndroidPlatform, проверьте здесь
targetSdk должен использоваться только для телефонной связи. Это говорит PhoneGap, чтобы использовать определенный API Level для создания этого приложения. Это не означает, что какой-либо пользователь может загружать ваше приложение. Это скорее сказать: "Приложение оптимизировано для этого уровня APIL". пример
<preference name="android-targetSdkVersion" value="17"/> //android 4.2
Это приложение создается (оптимизировано) с использованием APILevel 17 (который является jellyBean или androidPlatform4.2)
minSdk, с другой стороны, ограничивает пользователя / устройства. minSdk - это минимальное требование Sdk для пользователя / устройства. Любое устройство с уровнем API ниже уровня API Level, используемым 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
Документ: http://docs.build.phonegap.com/en_US/configuring_preferences.md.html
Для любого, кто ищет здесь возможность установить конкретную целевую версию, я обнаружил следующее: у меня просто была та же проблема. Я должен был изменить цель:
Цель проекта.
target = android-22 Это должно быть сделано в двух файлах:
myApp / platform /android/project.properties myApp/platform /android/CordovaLib/project.properties
Также манифест должен быть обновлен:
От Себастьяна ответ размещен здесь: Кордова: [Ошибка: Пожалуйста, установите цель Android: "android-21"
Мне удалось это исправить, вручную отредактировав платформы /android/AndroidManifest.xml:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />
Документация PhoneGap, кажется, подразумевает, что этот файл должен наследовать значение предпочтения android-minSdkVersion, но это должно быть изменено вручную. Насколько я могу судить, предпочтение android-minSdkVersion, похоже, ничего не дает.
Я исправил эту проблему, создав с помощью Android Studio вместо использования Cordova CLI для сборки.