1

我的代码在这里 我已经在我的设备上对其进行了测试我还在firebase上集成了这个应用程序。但它永远不会去 onRewarded 它总是调用 onRewardedFaild 为什么先生?谁能帮我。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Initialize the Mobile Ads SDK.
    MobileAds.initialize(this,APP_ID);

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

    // Create the "retry" button, which tries to show an interstitial between game plays.
    mRetryButton = ((Button) findViewById(R.id.retry_button));
    mRetryButton.setVisibility(View.INVISIBLE);
    mRetryButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startGame();
        }
    });

    // Create the "show" button, which shows a rewarded video if one is loaded.
    mShowVideoButton = ((Button) findViewById(R.id.watch_video));
    mShowVideoButton.setVisibility(View.INVISIBLE);
    mShowVideoButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showRewardedVideo();
        }
    });

    // Display current coin count to user.
    mCoinCountText = ((TextView) findViewById(R.id.coin_count_text));
    mCoinCount = 0;
    mCoinCountText.setText("Coins: " + mCoinCount);

    startGame();
}

@Override
public void onPause() {
    super.onPause();
    pauseGame();
    mRewardedVideoAd.pause(this);
}

@Override
public void onResume() {
    super.onResume();
    if (!mGameOver && mGamePaused) {
        resumeGame();
    }
    mRewardedVideoAd.resume(this);
}

private void pauseGame() {
    mCountDownTimer.cancel();
    mGamePaused = true;
}

private void resumeGame() {
    createTimer(mTimeRemaining);
    mGamePaused = false;
}

private void loadRewardedVideoAd() {
    if (!mRewardedVideoAd.isLoaded()) {
        mRewardedVideoAd.loadAd(AD_UNIT_ID, new AdRequest.Builder().build());
       /* AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice("40C4DDA8F53FFA9BA5B61261E0CA28AB") // Test devices don't work work with rewarded video ads.
                .build();
        mRewardedVideoAd.loadAd(AD_UNIT_ID, adRequest);*/
    }
}

private void addCoins(int coins) {
    mCoinCount = mCoinCount + coins;
    mCoinCountText.setText("Coins: " + mCoinCount);
}

private void startGame() {
    // Hide the retry button, load the ad, and start the timer.
    mRetryButton.setVisibility(View.INVISIBLE);
    mShowVideoButton.setVisibility(View.VISIBLE);
    loadRewardedVideoAd();
    createTimer(COUNTER_TIME);
    mGamePaused = false;
    mGameOver = false;
}

// Create the game timer, which counts down to the end of the level
// and shows the "retry" button.
private void createTimer(long time) {
    final TextView textView = ((TextView) findViewById(R.id.timer));
    if (mCountDownTimer != null) {
        mCountDownTimer.cancel();
    }
    mCountDownTimer = new CountDownTimer(time * 1000, 50) {
        @Override
        public void onTick(long millisUnitFinished) {
            mTimeRemaining = ((millisUnitFinished / 1000) + 1);
            textView.setText("seconds remaining: " + mTimeRemaining);
        }

        @Override
        public void onFinish() {
            if (mRewardedVideoAd.isLoaded()) {
                mShowVideoButton.setVisibility(View.VISIBLE);
            }
            textView.setText("You Lose!");
            addCoins(GAME_OVER_REWARD);
            mRetryButton.setVisibility(View.VISIBLE);
            mGameOver = true;
        }
    };
    mCountDownTimer.start();
}

private void showRewardedVideo() {
    mShowVideoButton.setVisibility(View.INVISIBLE);
    if (mRewardedVideoAd.isLoaded()) {
        mRewardedVideoAd.show();
    }
}

@Override
public void onRewardedVideoAdLeftApplication() {
    Toast.makeText(this, "onRewardedVideoAdLeftApplication", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdClosed() {
    Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show();
    // Preload the next video ad.
    loadRewardedVideoAd();
}

@Override
public void onRewardedVideoAdFailedToLoad(int errorCode) {
    Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdLoaded() {
    Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdOpened() {
    Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewarded(RewardItem reward) {
    Toast.makeText(this,
            String.format(" onRewarded! currency: %s amount: %d", reward.getType(),
                    reward.getAmount()),
            Toast.LENGTH_SHORT).show();
    addCoins(reward.getAmount());
}

@Override
public void onRewardedVideoStarted() {
    Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show();
}

我正在使用我的 Ad_Unit_ID Live 未测试设备 ID

4

0 回答 0