web-dev-qa-db-fra.com

Comment puis-je spécifier le SDK minimum dans phonegap? C'est ignorer Android-minsdkversion dans config.xml

Ceci est une conversation téléphonique 3.5/cordova 3 Android app. Dans www/config.xml, j'ai:

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

Cependant, lorsque je le construis, il crée un fichier AndroidManifest.xml avec:

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

Le résultat est que les personnes avec des versions de SDK inférieures à 19 peuvent installer mon application depuis le magasin. D'où provient ce 10 et comment puis-je le changer? En raison de l'étrangeté avec Viewport, le comportement de mon application est suspect sur les systèmes d'exploitation inférieurs à 4.4 et je reçois déjà des avis d'une étoile d'utilisateurs 4.2.2.

35
DevOfZot

Avec l'ancienne version de cordova CLI, je modifiais manuellement AndroidManifest.xml pour modifier quelques paramètres (mode de lancement, minsdk ...) comme vous le faites dans votre réponse.

Et avec Cordova 3.5. quelque chose , les choses ont commencé à aller de travers et certaines modifications ont été perdues à chaque fois que je construisais le projet.

Maintenant, j'ai ajouté ces lignes dans config.xml et les paramètres sont mis à jour automatiquement:

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

L'avantage est que je peux maintenant supprimer la plate-forme Android) et la recréer sans perdre aucun paramètre.

Alors que Phonegap est mis à jour pour s’aligner sur cordova, les préférences de config.xml devrait fonctionner avec la nouvelle version, et vous verrez peut-être que votre manuel mis à jour sera perdu comme il m'est arrivé ...

56
QuickFix

ÉTAPE 1) fichier yourapp/config.xml <platform name="Android"> les balises ajoutent deux préférences

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

ÉTAPE 2)cordova platform rm Android exécuter le code cmd

ÉTAPE 3)cordova platform add Android exécuter le code cmd Vérifiez votre fichier AndroidManifest.xml s'il ressemble à ce qui suit

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

tout va bien :)

32
Ferhat KOÇER

Modification et réponse améliorée:

Pour répondre à cette question, il est préférable de commencer par Build version, ou niveau API. Niveau API est une valeur entière qui identifie de manière unique la révision de l’API de la structure proposée par une version de la plate-forme Android.

API Level 8 == Android Platform 2.3(ginger bread)
API Level 17 == Android Platform 4.2(Jelly bean)

Pour voir la comparaison complète d'APILevel et de sa vérification AndroidPlatform ici


targetSdk doit être utilisé par phonegap uniquement. Cela indique à Phonegap d'utiliser certains APILevel pour créer cette application. Cela ne vise pas à empêcher un utilisateur de télécharger votre application. C'est plus comme dire " L'application est optimisée pour cet APILevel". Exemple

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

Cette application est construite (optimisée) à l'aide de APILevel 17 (qui est jellyBean ou androidPlatform4.2)


minSdk d'autre part, limite l'utilisateur/périphérique. minSdk est l'exigence minimale de Sdk pour l'utilisateur/le périphérique. Tout appareil avec un niveau d'API inférieur à APILevel utilisé par minSdk ne pourra pas télécharger cette application. Exemple:

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

pour télécharger cette application, l'appareil doit au moins fonctionner sur Android 3.0 (APILevel 11)


Enfin , lorsqu'ils sont utilisés ensemble:

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

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

Cette déclaration signifie que cette application est optimisée pour Android4.2, avec une exigence minimale de Android 3.0


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

21
vdj4y

Pour ceux qui se rendent ici et qui cherchent un moyen de définir une version cible spécifique, j’ai trouvé ceci: je n’avais que le même problème. Je devais changer de cible:

Cible du projet.

target = Android-22 Cela devrait être fait en deux fichiers:

myApp/plates-formes/Android/project.properties monApp/plates-formes/Android/CordovaLib/project.properties

De plus, le manifeste devrait être mis à jour:

De Sebastian réponse placé ici: Cordova: [Erreur: S'il vous plaît installer Android cible: "Android-21"

2
Leo Medeiros

J'ai pu résoudre ce problème en modifiant manuellement les plates-formes/Android/AndroidManifest.xml:

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

La documentation Phonegap semble impliquer que ce fichier doit hériter de la valeur de la préférence Android-minSdkVersion, mais il doit être modifié manuellement. La préférence Android-minSdkVersion ne semble rien faire pour autant que je sache.

0
DevOfZot