cordova cordova-3.5

cordova - ¿Cómo puedo especificar el SDK mínimo en phonegap? Está ignorando android-minsdkversion en config.xml



cordova-3.5 (5)

Esta es una aplicación para Android phonegap 3.5 / cordova 3. En www / config.xml tengo:

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

Sin embargo, cuando lo construyo, crea un AndroidManifest.xml con:

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

El resultado es que las personas con versiones de SDK inferiores a 19 pueden instalar mi aplicación desde la tienda. ¿De dónde saca ese 10 y cómo puedo cambiarlo? Debido a la rareza con Viewport, el comportamiento de mi aplicación es sospechoso en los sistemas operativos por debajo de 4.4 y ya estoy recibiendo críticas de 1 estrella de 4.2.2 usuarios.


Con la versión anterior de cordova CLI, solía modificar manualmente AndroidManifest.xml para cambiar algunas configuraciones (modo de lanzamiento, minsdk ...) como lo hace en su respuesta.

Y con Cordova 3.5. algo comenzó a ir mal, y algunos cambios se perdieron cada vez que construí el proyecto.

Ahora agregué esas líneas en config.xml y la configuración se actualiza automáticamente:

<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>

La ventaja es que ahora puedo eliminar la plataforma de Android y volver a crearla sin perder ninguna configuración.

Como Phonegap se está actualizando para estar en línea con cordova, las preferencias en config.xml deberían funcionar con la nueva versión, y tal vez veas que tu manual actualizado se pierde como me pasó a mí ...


Editar y mejorar la respuesta:

Para responder a esto, es mejor comenzar con la versión de compilación o el nivel de API. API Level es un valor entero que identifica de forma única la revisión de API de framework que ofrece una versión de la plataforma Android.

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

Para ver la comparación completa de APILevel y su plataforma Android, consulte here

targetSdk debe ser utilizado solo por Phonegap. Esto indica a phonegap que use cierto APILevel para compilar esta aplicación. Esto no significa que ningún usuario deba descargar su aplicación. Es más parecido a decir: " La aplicación está optimizada para este APILevel ". ejemplo

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

Esta aplicación es compilación (optimizada) usando APILevel 17 (que es jellyBean o androidPlatform4.2)

minSdk por otro lado, limita el usuario / dispositivo. minSdk es el requisito mínimo de Sdk para el usuario / dispositivo. Cualquier dispositivo con nivel API menor que APILevel utilizado por minSdk, no podrá descargar esta aplicación. ejemplo:

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

para descargar esta aplicación, el dispositivo tiene que funcionar al menos en Android 3.0 (APILevel 11)

Finalmente , cuando se usan juntos:

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

Esta declaración significa que esta aplicación está optimizada para android4.2, con un requisito mínimo de Android 3.0

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


Para cualquiera que esté buscando una forma de establecer una versión específica, encontré esto: solo tuve el mismo problema. Tuve que cambiar el objetivo:

Objetivo del proyecto

target = android-22 Esto debe hacerse en dos archivos:

myApp / platforms / android / project.properties myApp / platforms / android / CordovaLib / project.properties

También el manifiesto debe actualizarse:

De la respuesta de Sebastian colocada aquí: Cordova: [Error: por favor, instala el Android objetivo: "android-21"


Pude solucionar esto editando manualmente plataformas / android / AndroidManifest.xml:

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

La http://docs.build.phonegap.com/en_US/configuring_preferences.md.html#Preferences parece implicar que este archivo debe heredar el valor de la preferencia android-minSdkVersion, pero debe modificarse manualmente. La preferencia de android-minSdkVersion no parece hacer nada por lo que puedo decir.


PASO 1) Las etiquetas del archivo yourapp / config.xml <platform name="android"> añaden dos preferencias

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

PASO 2) cordova platform rm android ejecutar código cmd

PASO 3) cordova platform add android run cmd code Comprueba tu archivo AndroidManifest.xml si se ve abajo

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

todo está bien :)