Как указать минимальный 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.
Ответы
Ответ 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 не работает.