gpt4 book ai didi

android:admob InterstitialAd 在 loadAd 时崩溃

转载 作者:行者123 更新时间:2023-12-03 17:11:01 25 4
gpt4 key购买 nike

我正在使用 Admob 的 InterstitialAd。我的应用程序仅在第一次被调用时在“loadAd”处崩溃,并且不可重现(它在 100-200 次或多或少的运行中发生一次)。广告单元 ID 肯定是正确的。因此,如果 loadAd 在第一次调用时没有失败,那么在这次运行中它根本不会失败。

类(class)成员:

InterstitialAd mInterstitialAd;

创建:
mInterstitialAd = new InterstitialAd(this);

mInterstitialAd.setAdUnitId(getResources().getString(R.string.interstitial_ad_unit_id));

mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
finish();
}
});

requestNewInterstitial();

requestNewInterstitial 方法:
private void requestNewInterstitial() {
if (mInterstitialAd != null) {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(getResources().getString(R.string.test_device))
.build();

if (adRequest == null) {
return;
}

// HERE'S THE CRASH
try {
mInterstitialAd.loadAd(adRequest);
}catch(Exception e) {
return;
}
}
}

捕获 没有捕捉到“loadAd”的崩溃。

我怎样才能捕获它,或者至少让它不会让我的应用程序崩溃?我希望当 loadAd 失败时,不会显示任何广告。

日志猫:
A/libc: Fatal signal 5 (SIGTRAP), code 1 in tid 27794 (AdWorker(Defaul)
W/VideoCapabilities: Unrecognized profile 2130706433 for video/avc
I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es

我不知道最后两行是否与这次崩溃有关,但第一行是肯定的。

最佳答案

有时发生的情况是 Ad 会加载到您的缓冲区中,因此当您尝试调用 loadAd 时,它会崩溃
创建:

    mInterstitialAd = new InterstitialAd(this);
// set the ad unit ID
mInterstitialAd.setAdUnitId(getString(R.string.ad_id));

AdRequest adRequest2 = new AdRequest.Builder()
.build();
// Load ads into Interstitial Ads

mInterstitialAd.loadAd(adRequest2);

mInterstitialAd.setAdListener(new AdListener() {
public void onAdLoaded() {
showInterstitial();
}
});

在同一个类:
private void showInterstitial() {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}

关于android:admob InterstitialAd 在 loadAd 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43236448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com