RewardVideoListener不是抽象的,并且不会覆盖RewardedVideoAdListener中的抽象方法onRewardedVideoCompleted()

Bha*_*esh 2 admob ionic-framework

//这是我的代码

package name.ratson.cordova.admob.rewardvideo;

import android.util.Log;

import com.google.android.gms.ads.reward.RewardItem;
import com.google.android.gms.ads.reward.RewardedVideoAdListener;

import org.json.JSONException;
import org.json.JSONObject;

import name.ratson.cordova.admob.AbstractExecutor;

class RewardVideoListener implements RewardedVideoAdListener {
private final RewardVideoExecutor executor;

RewardVideoListener(RewardVideoExecutor executor) {
    this.executor = executor;
}

@Override
public void onRewardedVideoAdFailedToLoad(int errorCode) {
    synchronized (executor.rewardedVideoLock) {
        executor.isRewardedVideoLoading = false;
    }

    JSONObject data = new JSONObject();
    try {
        data.put("error", errorCode);
        data.put("reason", AbstractExecutor.getErrorReason(errorCode));
        data.put("adType", executor.getAdType());
    } catch (JSONException e) {
        e.printStackTrace();
    }
    executor.fireAdEvent("admob.rewardvideo.events.LOAD_FAIL", data);
}

@Override
public void onRewardedVideoAdLeftApplication() {
    JSONObject data = new JSONObject();
    try {
        data.put("adType", executor.getAdType());
    } catch (JSONException e) {
        e.printStackTrace();
    }
    executor.fireAdEvent("admob.rewardvideo.events.EXIT_APP", data);
}

@Override
public void onRewardedVideoAdLoaded() {
    synchronized (executor.rewardedVideoLock) {
        executor.isRewardedVideoLoading = false;
    }
    Log.w("AdMob", "RewardedVideoAdLoaded");
    executor.fireAdEvent("admob.rewardvideo.events.LOAD");

    if (executor.shouldAutoShow()) {
        executor.showAd(true, null);
    }
}

@Override
public void onRewardedVideoAdOpened() {
    executor.fireAdEvent("admob.rewardvideo.events.OPEN");
}

@Override
public void onRewardedVideoStarted() {
    executor.fireAdEvent("admob.rewardvideo.events.START");
}

@Override
public void onRewardedVideoAdClosed() {
    executor.fireAdEvent("admob.rewardvideo.events.CLOSE");
    executor.clearAd();
}

@Override
public void onRewarded(RewardItem reward) {
    JSONObject data = new JSONObject();
    try {
        data.put("adType", executor.getAdType());
        data.put("rewardType", reward.getType());
        data.put("rewardAmount", reward.getAmount());
    } catch (JSONException e) {
        e.printStackTrace();
    }
    executor.fireAdEvent("admob.rewardvideo.events.REWARD", data);
}
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*l A 6

您的RewardVideoListener类正在接口中实现RewardedVideoAdListener.

要使用RewardedVideoAdListener接口进行编译,您需要实现所有接口方法,包括RewardedVideoAdListener.

所以将它添加到您的班级:

@Override
public void onRewardedVideoCompleted() {
Toast.makeText(this, "onRewardedVideoCompleted", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)