As MH. указав в this question, больше не нужно включать GoogleAdMobAdsSdk-x.x.x.jar в свой проект Android, если они включают службы Google Play (см. migration guide). Тем не менее, я хочу, и у меня проблемы.Используйте как Службы Службы, так и SDK AdMob
Проблема: проект google-play-services_lib включает определение для com.google.ads.AdRequest
, которое устарело и имеет частный конструктор. Он попадает в путь класса перед банком AdMob (в записи «Частные библиотеки Android»), поэтому, когда я пытаюсь использовать его в своем коде, он пытается использовать устаревший, что приводит к ошибке: The constructor AdRequest() is not visible
. Я не вижу возможности переупорядочивать записи внутри «Частных библиотек Android».
Почему я хочу использовать оба варианта, вы спрашиваете? У меня есть один проект библиотеки со многими полезными классами, включая некоторые классы полезности для работы как с Play Services, так и с AdMob. Некоторые из моих приложений, которые используют этот проект библиотеки, используют служебные классы AdMob, но не Службы Службы.
Вы можете не использовать альтернативный конструктор, который доступен в обеих библиотеках? В противном случае разделите его на 2 библиотеки или удалите только материал Admob и внесите его прямо в свои приложения (я не могу себе представить, что на самом деле существует очень распространенный код, так как код Admob настолько прост). – William
Насколько я могу судить, единственная цель нового, устаревшего класса в библиотеке Служб Службы - вызвать ошибку, которую я получил. Класс, который должен использоваться в библиотеке служб, находится в другом пакете. Мне кажется странным, что они намеренно нарушили бы совместимость двух своих продуктов.Мое единственное предположение, что они будут поэтапно отказываться от автономной банки AdMob. Я бы хотел найти обходное решение, по крайней мере, на данный момент. –