Firebase AdMob вызывает IncompatibleClassChangeError

java.lang.IncompatibleClassChangeError: Superclass com.google.android.gms.dynamic.zzg of com.google.android.gms.internal.zzdx is declared final (declaration of 'com.google.android.gms.internal.zzdx' appears in /data/app/io.github.basixkor.scipnet-1/split_lib_dependencies_apk.apk:classes12.dex) at com.google.android.gms.internal.zzeh.zzeO(Unknown Source) at com.google.android.gms.internal.zzey.<clinit>(Unknown Source) at com.google.android.gms.ads.AdRequest.<clinit>(Unknown Source) at com.google.android.gms.ads.AdRequest$Builder.<init>(Unknown Source) 

Это трассировка стека, AdRequest вызовом AdRequest . Я попробовал очистить и перестроить, но он все еще не работает.

 find<AdView>(R.id.adView).loadAd(AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build()) 

Этот код является кодом kotlin для загрузки объявления.

 <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" ads:adSize="BANNER" ads:adUnitId="@string/banner_ad_unit_id" /> 

И это макет. Как решить эту ошибку?

Это была проблема с версией. Убедитесь, что у вас есть firebase-core и та же версия firebase-core и firebase-ads .

Если adView является идентификатором AdView в вашем AdView activity_main.xml

Затем вы можете использовать так:

 private AdView mAdView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //layout having AdView mAdView = (AdView) findViewById(R.id.adView); AdRequest.Builder builder =new AdRequest.Builder(); builder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR); AdRequest adRequest = builder.build(); mAdView.loadAd(adRequest); }