Ich versuche, Include-Layout für die AdView mit Datenbindung zu verwenden. Aber es wirft mir einen Fehler:Include AdView mit Datenbindung
java.lang.IllegalStateException: The ad size and ad unit ID must be set before loadAd is called.
Nun, was ich tue, ist, meiner Haupttätigkeit Layout, ich eingeschlossen haben das Layout mit variabler AdID für die adUnitId wie folgt aus:
<include
android:id="@+id/adViewInclude"
layout="@layout/include_ads"
app:adId="@{@string/main_activity_banner_ad_unit_id}" />
Meine include_ads.xml
ist wie folgt:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="adId"
type="String" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:adSize="SMART_BANNER"
app:adUnitId="@{adId}" />
</FrameLayout>
</layout>
Jetzt in meiner Aktivitäten onCreate
Methode, die ich diese Methode schließlich nenne:
private void loadAds() {
mBinding.executePendingBindings();
AdRequest adRequest = new AdRequest.Builder().build();
mBinding.mainContent.adViewInclude.adView.loadAd(adRequest);
}
Aber es wirft einen Fehler auf. Was läuft hier falsch?
(Soweit ich weiß) statt verwenden sollten Leider ist es nicht möglich ist, die 'ad ID' zu binden, wird die Ursache in Ihrem Fehler beschrieben. (Die Anzeigenblock-ID muss festgelegt werden, bevor loadAd aufgerufen wird.) Ich habe den gleichen Fehler vor einiger Zeit, aber vielleicht werde ich versuchen, eine Arbeit zu finden :) – yennsarah
@Amylinn Ja, es funktioniert einfach nicht. Ich habe eine Arbeit gefunden. Wird den Code bald posten. – kirtan403