nawaab saab
nawaab saab

Reputation: 1902

Fail to instantiate adapter com.google.ads.mediation.chartboost.ChartboostAdapter

I am trying to load RewardedVideoAd, but I am getting error code 3. I am getting this message in logcat:

Fail to instantiate adapter com.google.ads.mediation.chartboost.ChartboostAdapter
                                                                             android.os.RemoteException
                                                                                 at com.google.android.gms.internal.zzfz.zzao(Unknown Source)
                                                                                 at com.google.android.gms.internal.zzfz.zzan(Unknown Source)
                                                                                 at com.google.android.gms.internal.zzfz.zzal(Unknown Source)
                                                                                 at com.google.android.gms.internal.zzga$zza.onTransact(Unknown Source)
                                                                                 at android.os.Binder.transact(Binder.java:395)
                                                                                 at com.google.android.gms.ads.internal.mediation.client.d.a(:com.google.android.gms.DynamiteModulesA:94)
                                                                                 at com.google.android.gms.ads.internal.reward.c.b(:com.google.android.gms.DynamiteModulesA:215)
                                                                                 at com.google.android.gms.ads.internal.reward.mediation.h.a(:com.google.android.gms.DynamiteModulesA:1108)
                                                                                 at com.google.android.gms.ads.internal.util.b.run(:com.google.android.gms.DynamiteModulesA:19)
                                                                                 at com.google.android.gms.ads.internal.util.u.call(:com.google.android.gms.DynamiteModulesA:1055)
                                                                                 at com.google.android.gms.ads.internal.util.v.run(:com.google.android.gms.DynamiteModulesA:75)
                                                                                 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
                                                                                 at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                                 at java.lang.Thread.run(Thread.java:818)*

I did very much research on this but I didn't get any solution. Any help will be Appreciated

The code I implemented is:

private RewardedVideoAd mRewardedVideoAd;

MobileAds.initialize(activity, getString(R.string.admob_app_id));

            mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(activity);
            mRewardedVideoAd.setRewardedVideoAdListener(this);
            loadRewardedVideoAd();


private void loadRewardedVideoAd() {
        synchronized (mLock) {
            if (!mIsRewardedVideoLoading && !mRewardedVideoAd.isLoaded()) {
                mIsRewardedVideoLoading = true;
                Bundle extras = new Bundle();
                extras.putBoolean("_noRefresh", true);
                AdRequest adRequest = new AdRequest.Builder()
                        .addNetworkExtrasBundle(AdMobAdapter.class, extras)
                        .build();
                mRewardedVideoAd.loadAd(getString(R.string.random_video), adRequest);
            }
        }
    }

    private void showRewardedVideo() {
        if (mRewardedVideoAd.isLoaded()) {
            randomClicked = -1;
            mRewardedVideoAd.show();
        }
    }

@Override
    public void onRewardedVideoAdLoaded() {
        mIsRewardedVideoLoading = false;
    }

    @Override
    public void onRewardedVideoAdOpened() {

    }

    @Override
    public void onRewardedVideoStarted() {

    }

    @Override
    public void onRewardedVideoAdClosed() {
        loadRewardedVideoAd();
    }

    @Override
    public void onRewarded(RewardItem rewardItem) {

    }

    @Override
    public void onRewardedVideoAdLeftApplication() {

    }

    @Override
    public void onRewardedVideoAdFailedToLoad(int i) {
        mIsRewardedVideoLoading = false;
        Log.i("rewarded_video", "Failed to Load Rewarded Video " + i);
        loadRewardedVideoAd();
    }

Upvotes: 1

Views: 3112

Answers (1)

Majda
Majda

Reputation: 639

First, add this to the Manifest file

 <activity android:name="com.chartboost.sdk.CBImpressionActivity"
        android:excludeFromRecents="true"
        android:hardwareAccelerated="true"
        android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
        android:configChanges="keyboardHidden|orientation|screenSize" />

Also do not forget to add the necessary permissions to the Manifest file.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Finally, if you have just created your account, or if you have just made some changes to it, you may need to wait a little before the changes take effect and before you are able to see ads.

Upvotes: 2

Related Questions