web-dev-qa-db-fra.com

Erreur Admob dans Eclipse pour Android: configChanges

Eclipse me donne une erreur sur la ligne Android: configChanges dans mon fichier AndroidManifest.xml:

<activity Android:name="com.google.ads.AdActivity"
              Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"></activity>

l'erreur est:

error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize').

Si je pars seulement keyboard|keyboardHidden|orientation _ il n'y a pas d'erreur, mais le compilateur demande les 4 restants lorsque j'essaie de construire.

J'utilise GoogleAdMobAdsSDK-4.3.1.

Des idées?

EDIT: Je l'ai obtenu en changeant mon project.properties ( default.properties sur le SDK réduisez ensuite 14) vers:

# Project target.
target=Android-14

et dans mon SDK Manager ayant le SDK Platform Android 4.0 - Révision 14 installé.

Il devrait également fonctionner pour SDK Platform Android 3.2 - révision 13 , il vous suffit donc de modifier le fichier project.properties. cible à Android-13 si c'est le cas. En gros, il vous suffit de vous assurer que la révision du SDK est de 13 ou plus, et que SDK installé dans le gestionnaire de SDK et la cible du projet dans default/project.properties qui le désigne.

131
Mark Cameron

Réponse simple: les modifications de configuration mentionnées ne sont pas supportées dans Android 2.1, regardez ici:

http://developer.Android.com/guide/topics/manifest/activity-element.html#config

par exemple. uiMode nécessite une API de niveau 8.

De la documentation officielle AdMob:

Conditions requises

Le kit de développement logiciel Google AdMob Ads pour Android nécessite Android version 1.5 ou ultérieure. . Assurez-vous de disposer de la dernière copie du = Android SDK et que vous compilez au moins Android v3.2 (définir la cible dans default.properties sur Android -13).

regardez ici: https://developers.google.com/admob/Android/quick-start

Je pense donc que la version de vos outils n’est pas mise à jour vers la version 13 au moins.

74
HefferWolf

Solution facile: (et NON vous n'avez pas besoin de changer la valeur min-sdk !!)

Étape 1: Modifiez le fichier "project.properties".

# Project target.
target=Android-13

Étape 2: dans Eclipse

Project > Clean... > (select your project) > Clean projects selected below > OK

Pour une explication complète avec des exemples réels, utilisez ce tutoriel http://www.monkeycoder.co.nz/Community/posts.php?topic=1121

À votre santé !

86
Dax

Pour ceux qui utilisent Eclipse, il existe un moyen plus simple: Cliquez avec le bouton droit de la souris sur le dossier de votre projet dans le volet de gauche "Explorateur de packages", puis cliquez sur Propriétés -> Android -> et dans la liste "Project Build Target", cochez la case API 13 ou supérieure.

Remarque: ceci a le même effet que l'édition project.properties qui est générée de toute façon.

Cela construira votre projet par rapport au SDK Android 3.2), qui inclut les termes qui n’étaient pas reconnus auparavant.

Vous pouvez laisser votre Android:minSdkVersion et targetSdkVersion ont la même valeur dans votre fichier Manifest.xml.

Soyez averti si , si vous ne définissez pas votre targetSdkVersion sur API 12 ou inférieure (ou ne le définissez pas du tout) le système Android supposera que le Android:configChanges valeurs screenSize et smallestScreenSize (qui ont été introduites dans l'API 13) sont comptabilisés et seront donc autorisés à détruire, redémarrer votre activité. Si vous voulez éviter cela, vous devez inclure ces termes dans votre autre <activity> balises (qui n'avaient probablement que keyboard|keyboardHidden|orientation jusqu'à maintenant).

Toutefois, si votre application cible une API de niveau 12 ou inférieur, votre activité gère toujours cette modification de configuration elle-même (cette modification de configuration ne redémarre pas votre activité, même si elle est exécutée sur un périphérique Android 3.2 ou supérieur). ).

La citation est de ici .

18
Tony Chan

J'ai eu le même problème alors je suis venu ici.
J'ai téléchargé l'exemple de code de https://developers.google.com/admob/Android/quick-start , j'avais toujours le problème avec toutes les réponses ci-dessus, j'ai donc utilisé le Même admob sdk, ils offrent dans l'exemple de projet. Refaire la construction des bocaux, changer de cible en Android-15, et utilise la même ligne que celle utilisée:

<activity Android:name="com.google.ads.AdActivity" 
              Android:configChanges="keyboard|keyboardHidden|orientation"/>

Et il fonctionne!

3

As-tu utilisé Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|‌​screenSize|smallestScreenSize

ou plus court? Si vous modifiez votre cible au-dessus de 13 et utilisez une configuration plus longue de configChanges (que j'ai écrite), cela devrait fonctionner.

0
Gürcan Kavakçı

Solution facile: Remplacez le fichier "project.properties" par 21

# Project target.
target=Android-21
0
Said Erraoudy