Установите переменные в XML так же, как манифест заполнителей в Android для AdMob - PullRequest
0 голосов
/ 14 апреля 2019

Заполнители манифеста в файле build.gradle позволяют указать константы, которые затем можно использовать в файле manifest следующим образом.

  manifestPlaceholders = [admob_app_id: "ca-app-pub-3940256099942544~3347511713", banner_id: "ca-app-pub-3940256099942544/6300978111"]

, а затем в файле манифеста

 <meta-data
   android:name="com.google.android.gms.ads.APPLICATION_ID"
   android:value="${admob_app_id}" />

Кажется, что это не работает в случае файлов макета XML

    <com.google.android.gms.ads.AdView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/publisherAdView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    ads:adSize="BANNER"
    ads:adUnitId="${banner_id}" />

Есть ли способ, которым я могу динамически изменить banner id на основе конфигурации сборки.Я пытался сделать это программно, но admob throws продолжает жаловаться, если оба adSize и adUnitId не объявлены в xml.

1 Ответ

1 голос
/ 14 апреля 2019

Вы можете использовать метод resValue() для создания строкового ресурса с идентификатором вашего баннера, а затем ссылаться на него в своих макетах:

android {
  ...
  buildTypes {
    release {
      resValue("string", "banner_id", "foo")
      ...
    }
    debug {
      resValue("string", "banner_id", "bar")
      ...
    }
  }
}
ads:adUnitId="@string/banner_id"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...