Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AdMob测试的我的设备id已更改(Android)_Android_Admob - Fatal编程技术网

AdMob测试的我的设备id已更改(Android)

AdMob测试的我的设备id已更改(Android),android,admob,Android,Admob,我已将用于adMob测试的手机的设备id设置为我应用程序中的常量。我的测试设备不是我的日常设备 今天我想用奖励视频测试一个用例,突然我发现没有填充或内部错误 我查看了一下日志,发现设备Id发生了变化 按设备Id,我指的是此日志中的设备: I/Ads: Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("THIS_ID_HERE") to get test ads on this device. 为什么会改变 是

我已将用于adMob测试的手机的设备id设置为我应用程序中的常量。我的测试设备不是我的日常设备

今天我想用奖励视频测试一个用例,突然我发现
没有填充
内部错误

我查看了一下日志,发现设备Id发生了变化

按设备Id,我指的是此日志中的设备:

I/Ads: Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("THIS_ID_HERE") to get test ads on this device.
  • 为什么会改变
  • 是因为我卸载了prod版本并安装了我的应用程序的开发版本吗
  • 这是随机发生的吗
  • 我能阻止这种行为吗

如果重置手机,设备Id会发生变化。当你更新操作系统时,它可能会导致。 它不会随机变化。 卸载产品版本和安装开发版本不应更改您的设备id(AFAIK)。

请尝试使用下面的凭据测试广告。在这种情况下,您将无需添加设备id

<!--Ad test credentials-->
<string name="admob_app_id">ca-app-pub-3940256099942544~3347511713</string>
<string name="banner_home_footer">ca-app-pub-3940256099942544/6300978111</string>
<string name="interstitial_full_screen">ca-app-pub-3940256099942544/1033173712</string>
<string name="rewarded_video">ca-app-pub-3940256099942544/5224354917</string>

<!--Ad live credentials-->
<string name="admob_app_id">add here your live app id</string>
<string name="banner_home_footer">add here your live footer id</string>
<string name="interstitial_full_screen">add here your live interstitial id</string>
<string name="rewarded_video">add here your live rewarded id</string>

我希望这能帮助你

因此,没有办法保持
testDeviceSID
?@distante的“始终有效”数组是的……问题是,我无法用不同奖励视频的正确响应来测试它。我必须始终测试来自google的同一个。@distante您是否添加了setRewardedVideoAdListener?我在更新的答案中添加了。
//Banner Ads
private void loadBannerAds(AdView mAdView) {
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();
    mAdView.loadAd(adRequest);
}

//Interstitial Ads
private void loadInterstitialAds(final InterstitialAd mInterstitialAd) {
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();
    // Load ads into Interstitial Ads
    mInterstitialAd.loadAd(adRequest);
    mInterstitialAd.setAdListener(new AdListener() {
        public void onAdLoaded() {
            if (mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
            }
        }
    });
}

//RewardedVideo Ads
private void loadRewardedVideoAd(RewardedVideoAd mRewardedVideoAd) {
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();

    mRewardedVideoAd.loadAd(context.getResources().getString(R.string.rewarded_video), adRequest);

    mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
        @Override
        public void onRewarded(RewardItem rewardItem) {
        }
        @Override
        public void onRewardedVideoAdLeftApplication() {
        }
        @Override
        public void onRewardedVideoAdClosed() {
        }
        @Override
        public void onRewardedVideoAdFailedToLoad(int errorCode) {
        }
        @Override
        public void onRewardedVideoCompleted() {
        }
        @Override
        public void onRewardedVideoAdLoaded() {
            try {
                if (mRewardedVideoAd.isLoaded()) {
                    mRewardedVideoAd.show();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        @Override
        public void onRewardedVideoAdOpened() {
        }
        @Override
        public void onRewardedVideoStarted() {
        }
    });

    // showing the ad to user
    // make sure the ad is loaded completely before showing it
    if (mRewardedVideoAd.isLoaded()) {
        mRewardedVideoAd.show();
    }
}