2011-12-20 3 views
2

Я пытаюсь интегрировать AdMob, и я пришел к тому, что мне нужно добавить эту строку в свой манифест, и я продолжаю получать эту ошибку. Это образец из этой ссылки http://code.google.com/mobile/ads/docs/android/fundamentals.htmlОшибка манифеста Android от Admob

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

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

ответ

7

Вы должны построить против API 13 (Android 3.2). Вы оставите android:minSdkVersion в вашем манифесте, но вам придется строить против 3.2.

В Eclipse (предположим?), Щелкните правой кнопкой мыши по проекту> Свойства> Android (слева)>, затем выберите 3.2 и нажмите «ОК».

Это не вызовет проблем - ваше приложение все равно будет работать на старых устройствах. Но будьте осторожны и убедитесь, что вы не используете новый код для старых устройств.

Что я обычно делаю, чтобы сделать это проще, прежде чем экспортировать в публикацию, я переключу цель обратно на мой минимум, убедитесь, что ошибок компиляции нет, а затем я вернусь к 3.2 - просто подсказку.

+0

К сожалению, что !? Спасибо за ваш ответ, это застало меня врасплох. На данный момент я нацелен на 1.6. Это ошибка в затмении? – Somk

+0

Это не ошибка с Eclipse или с чем-либо, если на то пошло. Некоторые атрибуты, которые входят в 'configChanges', были введены в 3.2. И вы не можете удалить их из 'configChanges', потому что ваши объявления не будут отображаться. – Jakar

+1

Старые устройства будут игнорировать любые 'configChanges', которые они не распознают, но это ошибка компиляции. – Hounshell

1

В своем манифесте я использую следующее. Целевой Android SDK - версия 8. Использование AdMob SDK 4.1.1.

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

Это означает, что ваш SDK Admob, вероятно, устарел. Текущие документы на странице http://code.google.com/mobile/ads/docs/android/fundamentals.html говорят: «[убедитесь, что] вы компилируете, по крайней мере, Android v3.2 (установите цель в default.properties к андроиду-13). – Jakar

+0

Да. Текущая версия - 4.3.1. Но я уверен, что вы можете заставить его работать, исключив неподдерживаемые опции. – Frohnzie

+0

Я попытался сделать это в своем приложении, а затем, когда я запустил его на своем тестовом устройстве, вместо того, чтобы показывать объявление, он дал мне сообщение, в котором говорилось что-то о вариантах манифеста, которые мне были нужны и чего не было. – Jakar

0

Здесь, после игры с ним, я нашел правильную комбинацию, очевидно, что adMob требует нескольких настроек. Я использую SDK 3.2, но я тестировал это, и он работает на 2.3.3 только для FYI.

AndroidManifest.xml

<uses-sdk 
    android:minSdkVersion="10" 
    android:maxSdkVersion="16" 
    android:targetSdkVersion="13"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

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

Тогда мои default.properties должны

target=android-10 

Также project.properties пришлось иметь

target=android-13 

Затем добавьте ваш <com.google.ads.AdView .../> к вашему XML макет или вызвать его из кода, и вы должны быть в бизнесе.

0

вы можете игнорировать последние изменения, а также использовать старший один вместо

configChanges = "клавиатуры | keyboardHidden | ориентирование"

Смежные вопросы