Rewarded Video Ad in Admob - Mediation not Working
<p>From my Admob, I have setup the mediation for Flurry and Vungle. When I request an Ad I am always getting the error as provided in the Logcat.</p>

<pre><code>Could not instantiate mediation adapter: com.google.ads.mediation.flurry.FlurryAdapter.
MediationAdapter is not a MediationRewardedVideoAdAdapter: com.vungle.mediation.VungleInterstitialAdapter
</code></pre>

<p><a href="https://developers.google.com/android/reference/com/google/android/gms/ads/reward/RewardedVideoAd" rel="noreferrer">Code Reference</a></p>

<h2>Gradle</h2>

<pre><code>dependencies {

compile files('libs/FlurryAnalytics-6.2.0.jar')
compile files('libs/FlurryAds-6.2.0.jar')
compile files('libs/flurryAndroidDFPandAdMobMediationAdapter-5.0.0.r1.jar')
compile files('libs/dagger-1.2.2.jar')
compile files('libs/javax.inject-1.jar')
compile files('libs/nineoldandroids-2.4.0.jar')
compile files('libs/vungle-publisher-adaptive-id-3.3.4.jar')
compile files('libs/VungleAdapter.jar')

compile 'com.android.support:multidex:1.0.0'
compile 'com.google.android.gms:play-services-ads:8.3.+'
compile 'com.google.android.gms:play-services-analytics:8.3.+'
compile 'com.google.android.gms:play-services-appindexing:8.3.+'
compile 'com.google.android.gms:play-services-appinvite:8.3.+'
compile 'com.google.android.gms:play-services-games:8.3.+'
compile 'com.google.android.gms:play-services-identity:8.3.+'
compile 'com.google.android.gms:play-services-plus:8.3.+'
compile project(':BaseGameUtils')
compile project(':facebook-android-sdk-4.8.1')
compile files('libs/AudienceNetwork.jar')
compile files('libs/FacebookAdapter.jar')
}
</code></pre>

<h2>Admob Setup</h2>

<p>I have setup the adunit in Admob with the Adtype as Interstitial like shown below<a href="https://i.stack.imgur.com/28naF.png" rel="noreferrer"><img src="https://i.stack.imgur.com/28naF.png" alt="enter image description here"></a></p>

<h2>Code</h2>

<pre><code>@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}
@Override
protected void onPause() {
    super.onPause();
    if(rewardedVideoAd!= null)
        rewardedVideoAd.pause();
    socialShareType=null;
}
@Override
protected void onResume() {
    super.onResume();
    if(rewardedVideoAd!=null)
        rewardedVideoAd.resume();
    // Refresh the state of the +1 button each time we receive focus.
    if(canShowGPlus1() &amp;&amp; plusOneButton!=null) {
        plusOneButton.initialize("https://developers.google.com/+", PLUS_ONE_REQUEST_CODE);
    //  plusOneButton.initialize("https://play.google.com/store/apps/details?id=com.game.puzzle.game.ballmania.android", PLUS_ONE_REQUEST_CODE);
    }
}
@Override
public void onDestroy() {
    if(rewardedVideoAd!=null)
        rewardedVideoAd.destroy();
    super.onDestroy();
    accessTokenTracker.stopTracking();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    rateMe();
    getActualScreenSize();

    // Initialize the SDK before executing any other operations,
    // especially, if you're using Facebook UI elements.
    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();
    shareDialog = new ShareDialog(this);

    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback&lt;LoginResult&gt;() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    // App code
                    System.out.println("FacebookCallback : Success");
                    //fbShareNow();
                }

                @Override
                public void onCancel() {
                    // App code
                    System.out.println("FacebookCallback : Cancel");
                }

                @Override
                public void onError(FacebookException exception) {
                    // App code
                    System.out.println("FacebookCallback : Erroe");
                }
            });
    accessTokenTracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken newAccessToken) {
            currentAccessToken=newAccessToken;
        }
    };

    currentAccessToken =  AccessToken.getCurrentAccessToken();

    c=AndroidLauncher.this;
    bld = new AlertDialog.Builder(this);

    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();

    //initialize(new MainGame(this), config);

    // Create the layout
    layout = new RelativeLayout(this);

    // Do the stuff that initialize() would do for you
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

    AdView admobView = createAdView();
    layout.addView(admobView);

    View gameView = initializeForView(new MainGame(this), config);
    layout.addView(gameView);

    showGPlus1(150, 150, 150, 150);

    setContentView(layout);

    if (isAppInstalledFromGooglePlay()) {
        iabSetup();
    }else{
        Arrays.fill(gemPurchased, Boolean.FALSE);
    }

    initializeGameServices();

    alarmSetup();


    setInterestial();
    setRewardedVideo();

    //getHash();

}
private void setRewardedVideo() {
    rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
    rewardedVideoAd.setUserId("userId"); 
    AdRequest adRequest = new AdRequest.Builder().build();
    rewardedVideoAd.loadAd(AD_UNIT_ID_REWARDED_VIDEO_AD, adRequest);

    rewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
        @Override
        public void onRewardedVideoAdLoaded() {
            System.out.println("onRewardedVideoAdLoaded()");
            if (rewardedVideoAd.isLoaded()) {
                rewardedVideoAd.show();
            }
        }

        @Override
        public void onRewardedVideoAdOpened() {
            System.out.println("onRewardedVideoAdOpened()");

        }

        @Override
        public void onRewardedVideoStarted() {
            System.out.println("onRewardedVideoStarted()");

        }

        @Override
        public void onRewardedVideoAdClosed() {
            System.out.println("onRewardedVideoAdClosed()");

        }

        @Override
        public void onRewarded(RewardItem rewardItem) {
            System.out.println("onRewarded()");

        }

        @Override
        public void onRewardedVideoAdLeftApplication() {
            System.out.println("onRewardedVideoAdLeftApplication()");

        }

        @Override
        public void onRewardedVideoAdFailedToLoad(int i) {
            System.out.println("onRewardedVideoAdFailedToLoad()");

        }
    });
}
</code></pre>

<h2>Logcat:</h2>

<pre><code>01-31 19:38:05.795    6634-6634/com.game.puzzle.game.ballmania.android I/dalvikvm﹕ Could not find method android.security.NetworkSecurityPolicy.getInstance, referenced from method com.google.android.gms.ads.internal.t.e.a
01-31 19:38:06.085    6634-6735/com.game.puzzle.game.ballmania.android D/dalvikvm﹕ DexOpt: --- BEGIN 'ads1706048048.jar' (bootstrap=0) ---
01-31 19:38:06.285    6634-6735/com.game.puzzle.game.ballmania.android D/dalvikvm﹕ DexOpt: --- END 'ads1706048048.jar' (success) ---
01-31 19:38:06.285    6634-6735/com.game.puzzle.game.ballmania.android D/dalvikvm﹕ DEX prep '/data/data/com.game.puzzle.game.ballmania.android/cache/ads1706048048.jar': unzip in 0ms, rewrite 207ms
01-31 19:38:13.165    6634-6634/com.game.puzzle.game.ballmania.android I/Ads﹕ Starting ad request.
01-31 19:38:13.175    6634-6634/com.game.puzzle.game.ballmania.android I/Ads﹕ Use AdRequest.Builder.addTestDevice("B6155B00A6A175A4D29AE13C0F0FBD7B") to get test ads on this device.
01-31 19:38:16.665    6634-7074/com.game.puzzle.game.ballmania.android W/Ads﹕ Could not instantiate mediation adapter: com.google.ads.mediation.flurry.FlurryAdapter. null
01-31 19:38:16.715    6634-7074/com.game.puzzle.game.ballmania.android W/Ads﹕ Fail to instantiate adapter com.google.ads.mediation.flurry.FlurryAdapter
    android.os.RemoteException
            at com.google.android.gms.internal.zzev.zzah(Unknown Source)
            at com.google.android.gms.internal.zzev.zzaf(Unknown Source)
            at com.google.android.gms.internal.zzew$zza.onTransact(Unknown Source)
            at android.os.Binder.transact(Binder.java:347)
            at com.google.android.gms.ads.internal.l.a.d.a(SourceFile:94)
            at com.google.android.gms.ads.internal.reward.c.b(SourceFile:194)
            at com.google.android.gms.ads.internal.reward.mediation.h.a(SourceFile:53)
            at com.google.android.gms.ads.internal.util.b.run(SourceFile:19)
            at com.google.android.gms.ads.internal.util.r.call(SourceFile:52)
            at com.google.android.gms.ads.internal.util.s.run(SourceFile:75)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
            at java.util.concurrent.FutureTask.run(FutureTask.java:234)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
            at java.lang.Thread.run(Thread.java:841)
01-31 19:38:16.745    6634-7075/com.game.puzzle.game.ballmania.android W/Ads﹕ MediationAdapter is not a MediationRewardedVideoAdAdapter: com.vungle.mediation.VungleInterstitialAdapter
01-31 19:38:16.745    6634-7075/com.game.puzzle.game.ballmania.android W/Ads﹕ Fail to check if adapter is initialized.
    android.os.RemoteException
            at com.google.android.gms.internal.zzfd.isInitialized(Unknown Source)
            at com.google.android.gms.internal.zzex$zza.onTransact(Unknown Source)
            at android.os.Binder.transact(Binder.java:347)
            at com.google.android.gms.ads.internal.l.a.g.g(SourceFile:621)
            at com.google.android.gms.ads.internal.reward.mediation.a.a(SourceFile:83)
            at com.google.android.gms.ads.internal.util.b.run(SourceFile:19)
            at com.google.android.gms.ads.internal.util.r.call(SourceFile:52)
            at com.google.android.gms.ads.internal.util.s.run(SourceFile:75)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
            at java.util.concurrent.FutureTask.run(FutureTask.java:234)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
            at java.lang.Thread.run(Thread.java:841)
01-31 19:38:16.745    6634-6634/com.game.puzzle.game.ballmania.android W/Ads﹕ Failed to load ad: 3
</code></pre>