Ошибка Admob в Eclipse для Android: configChanges - PullRequest
131 голосов
/ 26 октября 2011

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 Platform Android 4.0 - установлена ​​версия 14 .

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

Ответы [ 7 ]

86 голосов
/ 07 февраля 2012

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

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

# Project target.
target=android-13

Шаг 2: В Затмении

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

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

Ура!

74 голосов
/ 26 октября 2011

Простой ответ: упомянутые изменения конфигурации не поддерживаются в 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 или более поздняя версия. Убедитесь, что у вас установлена ​​последняя версия Android SDK и что вы компилируете по крайней мере для Android v3.2 (установите для default.properties значение android-13).

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

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

18 голосов
/ 11 февраля 2012

Для тех, кто использует Eclipse, есть более простой способ: Щелкните правой кнопкой мыши папку своего проекта на левой панели «Package Explorer» и выберите «Свойства» -> Android ->, а в списке «Project Build Target» отметьте API 13или выше.

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

Это создаст ваш проект противAndroid 3.2 SDK, который включает ранее нераспознанные термины.

Вы можете оставить свои значения android:minSdkVersion и targetSdkVersion одинаковыми в файле Manifest.xml.

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

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

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

3 голосов
/ 12 марта 2012

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

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

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

0 голосов
/ 11 апреля 2015

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

# Project target.
target=android-21
0 голосов
/ 15 января 2013

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

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

0 голосов
/ 24 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...