【问题标题】:New Admob has critical Error at Interstial AD?新 Admob 在 Interstial AD 中出现严重错误?
【发布时间】:2014-06-24 16:11:45
【问题描述】:

当我将 admob sdk 升级到最新的(google play 服务)版本时发生错误。

在旧版 Admob 中,我的代码工作正常。但是当升级到新的(google play服务版本)时出现问题:

  • 在我调用 loadAd() 后,Interstial Ad 显示正常,但是当我关闭广告时 --> 我的应用程序崩溃了。

我花了 3 天时间研究它,但没有结果。这不是我的应用程序问题,因为旧 admob 的方法相同,它工作正常。但现在它崩溃了?

我唯一知道的是:当 Interstial Ad 关闭时,我的活动的 oncreate 方法再次被调用,所有非静态变量都被清除,然后我的应用程序崩溃了???

我现在仍然没有解决方案,需要您的帮助。

谢谢!

代码如下:

                if (GameActivity.interstitial == null) {
                    GameActivity.interstitial = new InterstitialAd((Activity) GameActivity.this);
                    GameActivity.interstitial.setAdUnitId(GameActivity.this.getString(R.string.admob_int_id));
                    GameActivity.interstitial.setAdListener(new AdListener() {
                        public void onAdLoaded() {
                            super.onAdLoaded();
                            GameActivity.showINTAd();
                        }
                    });
                }
                GameActivity.interstitial.loadAd(new AdRequest.Builder().build());



public static void showINTAd() {
    if (GameActivity.interstitial != null) {
        if (GameActivity.interstitial.isLoaded()) {
            GameActivity.interstitial.show();
        }
    }
}

【问题讨论】:

  • 崩溃的堆栈跟踪?

标签: android admob


【解决方案1】:

当一个插页式广告(Activity)关闭时,您的 Activity 的 onCreate 将再次被调用,因为它正在重新启动您的 Activity。或者,您的 Activity 可能会因为您的应用崩溃而重新启动。

我发现您的代码有几个问题:

  1. 您不应该使用静态代码和属性。
  2. 您正在从 onAdLoaded() 调用 interstitial#show()。不要这样做。从应用中的自然断点调用 show()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-12
    • 2013-09-16
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多