2014-09-08 8 views
0

Мое приложение работало с android 4.2 и с помощью файла Admob x.x.x.jar несколько дней назад. я только что настроили Android SDK 4.4 и я заметил Google играть объявления не больше работать, также нашел, что это должно быть модернизировано, а так, что я сделал следующее:Google Play Ads не работает. Android 4.4 (требуемые объявления атрибутов xml: adSize отсутствовал)

Перед Мой XML Был:

<com.google.android.gms.ads.AdView 
      android:layout_width="wrap_content" 
      android:layout_height="50dp" 
      android:layout_gravity="center" 
      ads:adSize="BANNER" 
      ads:adUnitId="asdadadasddas" 
      /> 

Сегодня я обновил его

<com.google.android.gms.ads.AdView android:id="@+id/adView" 
      xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         ads:adUnitId="asdadadasddas" 
         ads:adSize="BANNER" 
         /> 

Мои Manifest

<activity 
      android:name="com.google.android.gms.ads.AdActivity" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /> 
     <meta-data android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version"/> 

значения => Integer.xml

<integer name="google_play_services_version">5089034</integer> 

и это дает мне следующее сообщение об ошибке enter image description here

Примечание: Я не использую любой код Java, чтобы отобразить его в том, что необходимо?

любая помощь будет оценена.

+0

Я не заметил эту ошибку, просто исправил ее. – UMAR

+0

смотрите в [post] (http://stackoverflow.com/a/20153396/3326331) –

ответ

1

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

XML Layout:

<com.google.android.gms.ads.AdView 
      xmlns:ads="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/adView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      ads:adUnitId="ca-app-pub-***" 
      ads:adSize="BANNER" 
         /> 

Две ошибки в своем коде были: 1) Xmlns: объявления значение было неправильно & эту ошибку указывал donfuxx 2) я использовал старый AdUnitId со следующим форматом: a15220c7a5f3775, но в последнем AdMob его формат совершенно другой, как используется в приведенном выше примере.

Примечание: Если вы используете старые «объявления: AdUnitId» будет показывать пустое объявление, и это было в случае со мной.

Javacode Java-код также требуется

AdRequest adRequest = new AdRequest.Builder() 
     .build(); 
     AdView adView = (AdView) view.findViewById(R.id.adView); 
     adView.loadAd(adRequest); 

Затем снова я нашел еще одну ошибку: Класс не найден исключение, хотя я был импортирован Google Play проект в моем приложении. Затем я нашел статью, в которой упоминалась копия Google Play Jar внутри вашей папки «libs», и она будет автоматически включена в ваши частные библиотеки Android для решения этой проблемы.

последний вопрос Нет необходимости ставить значение в integer.xml внутри вашего приложения, потому что, когда вы включаете Google играть проект услуги внутри вашего приложения, он автоматически выберет значение версии из него в вашем файле манифеста.

Таким образом, это были проблемы, с которыми я столкнулся во время миграции adMob, и помогут другим реализовать его быстро.

+0

интересно знать, что проблема id-объекта legacy-admob была проблемой. Thx для совместного использования. – donfuxx

0

Вы больше не должны устанавливать adUnitId/adSize в макете. Вместо того, чтобы сделать:

adView = new AdView(this); 
adView.setAdSize(AdSize.SMART_BANNER); 
adView.setAdUnitId(AD_UNIT_ID); 

Планировка:

<com.google.android.gms.ads.AdView 
    android:id="@+id/adView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
/> 

И, наконец,

AdRequest adRequest = new AdRequest.Builder() 
.addTestDevice("XXXXXXXXXXXXXXXXXXXX") 
.build(); 
adView.loadAd(adRequest); 
+0

Я ценю его, каково должно быть значение addTestDevice? – UMAR

+0

Вы можете удалить его или найти идентификатор устройства, используя что-то вроде [this] (http://stackoverflow.com/questions/9681400/android-get-device-id-for-admob). В основном это просто не отправляет запросы объявлений, если это тестовое устройство. – RyPope

+0

все еще отображается такой же ошибка без изменений. – UMAR

0

Вы все еще можете использовать атрибут ads:adSize XML!

Однако ваши настройки XML пространства имен является неправильным в элементе AdView, поскольку оно относится к прежней версии AdMob:

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 

, но так как вы уже используете Google Play AdMob, вы должны использовать:

xmlns:ads="http://schemas.android.com/apk/res-auto" 

вот почему атрибуты ads: не были распознаны.

Подробнее информация official admob migration guide.

+0

попробовал это, но не работал. – UMAR

+0

Вы заметили, что добавили устаревший атрибут xmlns внутри элемента adView? У вашего первоначального adView xml этого не было, поэтому я предполагаю, что вы добавили этот атрибут где-то еще раньше? – donfuxx

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