Подтвердить что ты не робот

Используйте как Play Services, так и SDK AdMob

Как MH. указано в этом вопросе, больше не нужно включать GoogleAdMobAdsSdk-xxxjar в свой Android-проект, если они включают службы Google Play (см. руководство по миграции). Тем не менее, я хочу, и у меня проблемы.

Проблема: проект google-play-services_lib включает определение для com.google.ads.AdRequest, которое устарело, и имеет частный конструктор. Он попадает в путь класса перед банком AdMob (в записи "Частные библиотеки Android" ), поэтому, когда я пытаюсь использовать его в своем коде, он пытается использовать устаревшее, что приводит к ошибке: The constructor AdRequest() is not visible. Я не вижу возможности переупорядочивать записи внутри "Частных библиотек Android".

Почему я хочу использовать оба, спросите вы? У меня есть один проект библиотеки со многими полезными классами, включая некоторые классы полезности для работы как с Play Services, так и с AdMob. Некоторые из моих приложений, которые используют этот проект библиотеки, используют служебные классы AdMob, но не Службы Службы.

4b9b3361

Ответ 1

Я тестировал это, и некоторые изменения необходимы для того, чтобы это работало через Службы Google Play.

Во-первых, вы должны удалить все импортные ссылки со старыми com.google.ads.*, так как они теперь расположены на com.google.android.gms.ads.*.

Как вы уже упоминали, необходимо сделать еще несколько изменений:

Вы не можете создать экземпляр AdRequest так, как он использовался, но используя AdRequest.Builder следующим образом:

AdRequest adRequest = new AdRequest.Builder().build();

Кроме того, убедитесь, что вы заменили имя пакета на всех макетах, поэтому они вызывают <com.google.android.gms.ads.AdView вместо <com.google.ads.AdView.

Я думаю, что все. Удачи!

Ответ 2

Вы можете использовать Google Play Services v12, который не включает перекрывающиеся пространства имен. Его можно загрузить с помощью Android SDK Manager в разделе "Дополнительно" → "Службы Google Play для Froyo". Эта версия будет сосуществовать с автономным SDK AdMob.

Со временем Google, вероятно, будет осуждать оба.

Обновление: Google анонсировала отказ автономного SDK AdMob, вы должны перейти в SDK Google Play:

1 августа 2014 года Google Play перестанет принимать новые или обновленные приложения которые используют старый автономный Google Mobile Ads SDK v6.4.1 или ниже. Вы к тому моменту должен обновиться до версии Google Play для мобильных объявлений.