Ошибка Admob в Eclipse для android:configChanges


Eclipse дает мне ошибку в строке android:configChanges в моем AndroidManifest.XML-код:

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

ошибка:

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

если я уйду только keyboard|keyboardHidden|orientation ошибки нет, но компилятор запрашивает 4 оставшихся, когда я пытаюсь построить.

я использую GoogleAdMobAdsSDK-4.3.1.

какие идеи?

EDIT: я получил его работу, изменив мой .свойства (по умолчанию.свойства on SDK ниже, чем 14) файл в:

# Project target.
target=android-14

и в моем SDK Manager имеющего SDK Платформа Android 4.0-редакция 14 установлен.

Он также должен работать для SDK Платформа android 3.2-редакция 13, так что вам просто нужно изменить проект.свойства target to android-13 если это так. В основном вам просто нужно убедиться, что версия SDK составляет 13 или выше, и что у вас установлен этот SDK в диспетчере SDK и целевой объект проекта по умолчанию / project.свойства, указывающие на него.

7 131

7 ответов:

простой ответ: упомянутые изменения конфигурации не поддерживаются в Android 2.1, посмотрите здесь:

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

например, uiMode нуждается в уровне API 8.

из официальной документации AdMob:

требования

для Google AdMob Ads SDK для Android требуется Android 1.5 или более поздней версии. убедитесь, что у вас последний экземпляр из пакета SDK для Android и что вы компилируете против, по крайней мере Android версии v3.2 (установить цель по умолчанию.свойства для android-13).

посмотрите здесь:https://developers.google.com/admob/android/quick-start

поэтому я думаю, что ваша версия инструментов не обновляется до версии 13.

простое решение: (и нет, вам не нужно менять значение min-sdk !!)

Шаг 1: Изменить " проект.свойства файла"

# Project target.
target=android-13

Шаг 2: В Eclipse

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

для полного объяснения с реальным примером используйте этот учебник http://www.monkeycoder.co.nz/Community/posts.php?topic=1121

Ура !

для тех, кто использует Eclipse есть более простой способ: щелкните правой кнопкой мыши папку проекта в левой панели " проводник пакетов "и выберите Свойства -> Android -> и в списке" цель сборки проекта " отметьте API 13 или выше.

Примечание: это тот же эффект, что и редактирование project.properties который автоматически генерируется в любом случае.

это будет построить свой проект против Android 3.2 SDK, который включает в себя условия, которые были ранее нераспознанный.

вы можете оставить свой android:minSdkVersion и targetSdkVersion значения те же в Манифесте.XML.

предупреждаю, что, если вы не установите targetSdkVersion для API 12 или ниже (или не устанавливайте его вообще) система Android будет считать, что android:configChanges значения screenSize и smallestScreenSize (которые были введены в API 13) учитываются и, таким образом, будет разрешено уничтожить-перезапустить вашу деятельность. Если вы хотите избежать этого, вы должны включить эти термины в свой другие <activity> теги (которые, вероятно, были только keyboard|keyboardHidden|orientation до сих пор).

однако, если ваше приложение нацелено на уровень API 12 или ниже, то ваша активность всегда обрабатывает это изменение конфигурации сама (это изменение конфигурации не перезапускает вашу активность, даже при запуске на Android 3.2 или более высоком устройстве).

цитата здесь.

у меня была такая же проблема, поэтому я пришел сюда.
Я скачал пример кода из https://developers.google.com/admob/android/quick-start, у меня все еще была проблема со всеми ответами выше, поэтому я использовал тот же AdMob sdk, который они предлагают в примере проекта. Переделайте вещь build jars, изменив цель на android-15, и использовал ту же линию, которую они используют:

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

и это работает!

вы использовали android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|‌​screenSize|smallestScreenSize

или короче? Если вы измените свою цель выше 13 и используете более длинные configChanges one (который я написал), он должен работать.

простое решение: Изменить " проект.свойства " файл до 21

# Project target.
target=android-21

для всех новых приложений для Android, созданных после 14 октября 2011 года, потребуется SDK AdMob, выпущенный 15 марта 2011 года или позже. Это соответствует версии 4.0.2+ для Android. Если вы скачали библиотеку с нашего официального сайта загрузки, то вы уже настроены. В противном случае у вас может быть старая версия AdMob SDK, выпущенная до 15 марта 2011 года, и Ваше новое приложение не будет получать никаких показов рекламы, пока вы не обновите свой SDK.