如何解决此错误“com.google.ads.mediation.admob.AdMobAdapter 无法转换为 com.google.android.gms.ads.mediation.m”?

Mat*_*nna 6 android admob mopub mobile-ad-mediation admob-rewardedvideoad

我在我的项目中使用 firebase 适配器,现在正在集成 admob 以获得奖励广告,它工作正常,但是每个视频完成后都会抛出以下错误...

  java.lang.ClassCastException: com.google.ads.mediation.admob.AdMobAdapter cannot be cast to com.google.android.gms.ads.mediation.m
    at com.google.android.gms.ads.internal.mediation.client.y.a(:com.google.android.gms.dynamite_dynamitemodulesa@12685008@12.6.85 (020306-197041431):262)
    at com.google.android.gms.ads.internal.reward.c.b(:com.google.android.gms.dynamite_dynamitemodulesa@12685008@12.6.85 (020306-197041431):54)
    at com.google.android.gms.ads.internal.reward.client.e.onTransact(:com.google.android.gms.dynamite_dynamitemodulesa@12685008@12.6.85 (020306-197041431):56)
    at android.os.Binder.transact(Binder.java:380)
    at com.google.android.gms.internal.ads.zzej.transactAndReadExceptionReturnVoid(Unknown Source)
    at com.google.android.gms.internal.ads.zzahb.zze(Unknown Source)
    at com.google.android.gms.internal.ads.zzahm.resume(Unknown Source)
    at com.mopub.mobileads.GooglePlayServicesRewardedVideo$1.onResume(GooglePlayServicesRewardedVideo.java:84)
    at com.mopub.common.MoPubLifecycleManager.onResume(MoPubLifecycleManager.java:83)
    at com.mopub.common.MoPub.onResume(MoPub.java:257)
    at com.coderays.realquiz.RealQuizDashBoard.onResume(RealQuizDashBoard.java:956)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1280)
    at android.app.Activity.performResume(Activity.java:6096)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3011)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3063)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1361)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5343)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
Run Code Online (Sandbox Code Playgroud)

我会尝试这个方法/sf/answers/3497166571/但仍然抛出这个错误。

我的等级是..

dependencies {
     implementation('com.mopub:mopub-sdk-interstitial:5.0.0@aar') {
     transitive = true
      }
    // For rewarded videos. This will automatically also include interstitials
     implementation('com.mopub:mopub-sdk-rewardedvideo:5.0.0@aar') {
     transitive = true
      }
     implementation 'com.google.firebase:firebase-core:16.0.0'
     implementation 'com.google.firebase:firebase-ads:15.0.1'
  }
Run Code Online (Sandbox Code Playgroud)

改哪一个,请给我一个解决方案,我还找了3天,但没有任何改善。

提前谢谢...

Mat*_*nna 0

谢谢,错误将在很长时间后修复。

第 1 步:GooglePlayServicesRewardedVideo.java我从中删除我的适配器类com.mopub.mobileads(如果您正在使用,GooglePlayServicesInterstitial.java请删除)。

步骤2:然后,将admob mediation sdk放入build.gradle即implementation 'com.mopub.mediation:admob:15.0.0.8'

步骤 3:然后,删除奖励展示活动中的以下行。

public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   MoPubRewardedVideos.initializeRewardedVideo(this);
   MoPub.onCreate(this); // remove 
   // ...
}

@Override
public void onPause() {
    super.onPause();
    MoPub.onPause(this); // remove 
}

@Override
public void onResume() {
    super.onResume();
    MoPub.onResume(this);  // remove 
}

// The following methods are required for Chartboost rewarded video mediation
@Override
public void onStart() {
    super.onStart();
    MoPub.onStart(this); // remove 
}

@Override
public void onRestart() {
    super.onRestart();
    MoPub.onRestart(this); // remove 
}

@Override
public void onStop() {
    super.onStop();
    MoPub.onStop(this); // remove 
}

@Override
public void onDestroy() {
    super.onDestroy();
    MoPub.onDestroy(this); // remove 
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    MoPub.onBackPressed(this); // remove 
  }
}
Run Code Online (Sandbox Code Playgroud)

步骤4 :同步您的项目并进行构建。它工作正常,没有错误。

谢谢。