webentwicklung-frage-antwort-db.com.de

Admob-Fehler in Eclipse für Android: configChanges

Eclipse gibt mir einen Fehler in der Android: configChanges-Zeile in meiner AndroidManifest.xml:

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

der fehler ist:

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

Wenn ich nur keyboard|keyboardHidden|orientation Es gibt keinen Fehler, aber der Compiler fragt nach den 4 verbleibenden, wenn ich versuche zu bauen.

Ich benutze GoogleAdMobAdsSDK-4.3.1.

Irgendwelche Ideen?

EDIT: Ich habe es zum Laufen gebracht, indem ich meine project.properties ( default.properties auf SDKs geändert habe niedriger als 14) Datei an:

# Project target.
target=Android-14

und in meinem SDK Manager mit installiertem SDK Platform Android 4.0 - Revision 14.

Es sollte auch für SDK Platform Android 3.2 - Revision 13 funktionieren, sodass Sie nur die project.properties ändern müssen Ziel ist Android-13 , wenn dies der Fall ist. Grundsätzlich müssen Sie nur sicherstellen, dass die SDK-Revision 13 oder höher ist und dass Sie diese haben Im SDK-Manager installiertes SDK und das Projektziel in default/project.properties, das darauf verweist.

131
Mark Cameron

Einfache Antwort: Die genannten Konfigurationsänderungen werden in Android 2.1 nicht unterstützt, schauen Sie hier:

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

z.B. uiMode benötigt API Level 8.

Aus der offiziellen AdMob-Dokumentation:

Anforderungen

Für das Google AdMob Ads SDK für Android ist Android 1.5 oder höher erforderlich. Vergewissern Sie sich, dass Sie über die neueste Version des Android SDK verfügen und dass Sie mindestens Android v3.2 kompilieren (festgelegt) Ziel in default.properties auf Android-13).

schauen Sie hier nach: https://developers.google.com/admob/Android/quick-start

Daher denke ich, dass Ihre Tools-Version nicht mindestens auf Version 13 aktualisiert wurde.

74
HefferWolf

Einfache Lösung: (und NEIN, Sie müssen den min-sdk-Wert nicht ändern !!)

Schritt 1: Ändern Sie die Datei "project.properties"

# Project target.
target=Android-13

Schritt 2: In Eclipse

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

Für eine vollständige Erklärung mit realem Beispiel verwenden Sie dieses Tutorial http://www.monkeycoder.co.nz/Community/posts.php?topic=1121

Prost !

86
Dax

Für diejenigen, die Eclipse verwenden, gibt es eine einfachere Möglichkeit: Klicken Sie mit der rechten Maustaste auf Ihren Projektordner im linken Bereich "Paket-Explorer" und klicken Sie auf Eigenschaften -> Android= -> und Aktivieren Sie in der Liste "Project Build Target" API 13 oder höher.

Hinweis: Dies ist der gleiche Effekt wie das Bearbeiten von project.properties, Das ohnehin automatisch generiert wird.

Dadurch wird Ihr Projekt anhand des Android 3.2 SDK erstellt, das die zuvor nicht erkannten Begriffe enthält.

Sie können die Werte für Android:minSdkVersion Und targetSdkVersion in Ihrer Manifest.xml unverändert lassen.

Seien Sie gewarnt , wenn Sie Ihr targetSdkVersion nicht auf API 12 oder niedriger setzen (oder gar nicht setzen) Das Android System geht davon aus, dass die Android:configChanges - Werte screenSize und smallestScreenSize (die in API 13 eingeführt wurden) berücksichtigt werden Wenn Sie dies vermeiden möchten, müssen Sie diese Begriffe in Ihre anderen <activity> - Tags aufnehmen (die bis jetzt wahrscheinlich nur keyboard|keyboardHidden|orientation hatten).

Wenn Ihre Anwendung jedoch API-Level 12 oder niedriger als Ziel hat, behandelt Ihre Aktivität diese Konfigurationsänderung immer selbst (diese Konfigurationsänderung startet Ihre Aktivität nicht neu, selbst wenn sie auf einem Android 3.2 oder höher) -Gerät ausgeführt wird ).

Zitat ist von hier .

18
Tony Chan

Ich hatte das gleiche Problem, also bin ich hergekommen.
Ich habe den Beispielcode von https://developers.google.com/admob/Android/quick-start heruntergeladen hatte das problem mit allen antworten oben also habe ich das gleiche admob sdk verwendet, das sie im beispielprojekt anbieten. Wiederholen Sie die Build-Jars-Sache und ändern Sie das Ziel in Android-15 und benutzten die gleiche Zeile, die sie benutzen:

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

Und es funktioniert!

Hast du benutzt Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|‌​screenSize|smallestScreenSize

oder kürzer? Wenn du dein Ziel über 13 änderst und längeres configChanges eins verwendest (was ich geschrieben habe), sollte es funktionieren.

0

Einfache Lösung: Ändern Sie die Datei "project.properties" in 21

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