Eclipse daje mi błąd w wierszu android: configChanges w moim AndroidManifest.xml:
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"></activity>
błąd to:
error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize').
Jeśli zostawię tylko, keyboard|keyboardHidden|orientation
nie ma błędu, ale kompilator prosi o 4 pozostałe, gdy próbuję budować.
Używam GoogleAdMobAdsSDK-4.3.1
.
Jakieś pomysły?
EDYCJA: Sprawiłem, że działa, zmieniając plik project.properties ( default.properties w SDK niższym niż 14) na:
# Project target.
target=android-14
oraz w moim menedżerze SDK z zainstalowaną platformą SDK Android 4.0 - wersja 14 .
Powinien również działać na platformie SDK Android 3.2 - wersja 13 , więc w takim przypadku wystarczy zmienić target project.properties na android-13 . Zasadniczo musisz tylko upewnić się, że wersja SDK to 13 lub nowsza i że masz ten zestaw SDK zainstalowany w menedżerze SDK i cel projektu w default / project.properties wskazujący na to.
Odpowiedzi:
Prosta odpowiedź: wspomniane zmiany konfiguracji nie są obsługiwane w systemie Android 2.1, zajrzyj tutaj:
http://developer.android.com/guide/topics/manifest/activity-element.html#config
np. uiMode wymaga API Level 8.
Z oficjalnej dokumentacji AdMob:
Wymagania
Pakiet Google AdMob Ads SDK na Androida wymaga systemu Android 1.5 lub nowszego. Upewnij się, że masz najnowszą kopię Android SDK i że kompilujesz na co najmniej Android v3.2 (ustaw cel w default.properties na android-13).
zajrzyj tutaj: https://developers.google.com/admob/android/quick-start
Więc myślę, że twoja wersja narzędzi nie została zaktualizowana przynajmniej do wersji 13.
źródło
<uses-sdk android:minSdkVersion="7"/>
na wersję 8, 9, 10, 11, 12 ... nadal mam błąd ... również próbowałem usunąć linię i nadal daje mi błąd.The android:configChanges value of the com.google.ads.AdActivity must include screenLayout. The android:configChanges value of the com.google.ads.AdActivity must include uiMode. The android:configChanges value of the com.google.ads.AdActivity must include screenSize. The android:configChanges value of the com.google.ads.AdActivity must include smallestScreenSize. You must have AdActivity declared in AndroidManifest.xml with configChanges.
A tam, gdzie ma być reklama, otrzymuję czarne pudełko z ostatnim komunikatem o błędzie zapisanym na czerwono.Unable to resolve target 'android-13'
. Mam jednak „Android SDK Tools, wersja 13” zainstalowany w moim menedżerze SDK ...Proste rozwiązanie: (i NIE, nie musisz zmieniać wartości min-sdk !!)
Krok 1: Zmień plik „project.properties”
# Project target. target=android-13
Krok 2: W Eclipse
Project > Clean... > (select your project) > Clean projects selected below > OK
Aby uzyskać pełne wyjaśnienie z rzeczywistym przykładem, skorzystaj z tego samouczka http://www.monkeycoder.co.nz/Community/posts.php?topic=1121
Twoje zdrowie !
źródło
Dla tych, którzy używają Eclipse jest prostszy sposób: kliknij prawym przyciskiem folder projektu w lewym okienku "Eksplorator pakietów" i kliknij Właściwości -> Android -> i na liście "Project Build Target" zaznacz API 13 lub wyżej.
Uwaga: jest to ten sam efekt, co edycja,
project.properties
która i tak jest generowana automatycznie.Spowoduje to skompilowanie projektu na podstawie zestawu SDK systemu Android 3.2, który zawiera warunki, które były wcześniej nierozpoznane.
Możesz pozostawić te same wartości
android:minSdkVersion
itargetSdkVersion
w swoim pliku Manifest.xml.Ostrzegamy jednak , że jeśli nie ustawisz
targetSdkVersion
API 12 lub niższego (lub w ogóle go nie ustawisz), system Android przyjmie, żeandroid:configChanges
wartościscreenSize
ismallestScreenSize
(które zostały wprowadzone w API 13) są uwzględnione i dlatego będą mieć pozwolenie na zniszczenie - ponowne uruchomienie Twojej działalności. Jeśli chcesz tego uniknąć, musisz uwzględnić te terminy w innych<activity>
tagach (które prawdopodobnie miały tylkokeyboard|keyboardHidden|orientation
do tej pory).Cytat jest stąd .
źródło
Miałem ten sam problem, więc przyjechałem tutaj. Pobrałem
przykładowy kod z https://developers.google.com/admob/android/quick-start , nadal miałem problem ze wszystkimi powyższymi odpowiedziami, więc użyłem tego samego sdk admob, który oferują w przykładowym projekcie. Ponownie wykonaj polecenie build jars, zmieniłem cel na
android-15
i użyj tej samej linii, której używają:<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation"/>
I to działa!
źródło
Czy używałeś
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize
czy krótszy? Jeśli zmienisz cel powyżej 13 i użyjesz dłuższego configChanges (o którym napisałem), powinno działać.
źródło
Proste rozwiązanie: zmień plik „project.properties” na 21
# Project target. target=android-21
źródło
źródło