Ошибка 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.

Любые идеи?

РЕДАКТИРОВАТЬ.. Я получил его, изменив project.properties (default.properties на SDK ниже 14), чтобы:

# Project target.
target=android-14

и в моем SDK Manager, где установлена ​​ SDK платформа Android 4.0 - версия 14.

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

Ответ 1

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

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

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

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

Требования

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

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

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

Ответ 2

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

Шаг 1: Измените файл "project.properties"

# 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

Приветствия!

Ответ 3

Для тех, кто использует 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 или выше).

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

Ответ 4

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

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

И он работает!

Ответ 5

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

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

Ответ 6

Простое решение: Измените файл "project.properties" на 21

# Project target.
target=android-21

Ответ 7

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