有些听众没有开枪

时间:2014-12-23 15:20:11

标签: java android listener

我正在集成一个实现多个侦听器的Android广告SDK。其中一些听众没有在我的应用程序中触发。例如onAdLoaded将触发,但onAdDisplayed不会触发。这在SDK随附的示例应用程序中运行得非常好,这使得他们认为这是集成问题。但是,我无法找到引起这种障碍的任何事情。这是我以前从未遇到的绝对奇怪的行为。我知道我在这里抓住吸管,但假设一些听众没有注册的原因可能是什么原因?我该怎么调试呢?

这里有一些代码:

        ad = new InterstitialAd(lastActivity, placementId);
        ad.setAdListener(new InterstitialAdListener() {
            //doesn't fire
            @Override
            public void onInterstitialDisplayed(Ad ad) {
                Log.e(TAG, "INTERSTITIAL DISPLAYED");
                Toast.makeText(lastActivity, "onInterstitialDisplayed", Toast.LENGTH_SHORT).show();
            }

            //doesn't fire
            @Override
            public void onInterstitialDismissed(Ad ad) {
                Log.e(TAG, "INTERSTITIAL DISMISSED");
                Toast.makeText(lastActivity, "onInterstitialDismissed", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(Ad ad, AdError adError) {
                Log.e(TAG, "ERROR! " + adError.getErrorMessage());
                Toast.makeText(lastActivity, "onError", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onAdLoaded(Ad ad) {
                Log.e(TAG, "AD LOADED!");
                AdAdapter.this.ad.show();
                Toast.makeText(lastActivity, "onAdLoaded", Toast.LENGTH_SHORT).show();
            }

            //doesn't fire
            @Override
            public void onAdClicked(Ad ad) {
                Log.e(TAG, "AD CLICKED!");
                Toast.makeText(lastActivity, "onAdClicked", Toast.LENGTH_SHORT).show();
            }
        });
        ad.loadAd();

1 个答案:

答案 0 :(得分:1)

我终于找到了原因。我反编译SDK以仔细查看。包名称被硬编码到与非触发侦听器相关的一些条件中。我在构建脚本中重构了他们的包名,但脚本忽略了字符串。因此包装名称已经改变,所以他们自然不会开火。