Java 有些听众没有开火

Java 有些听众没有开火,java,android,listener,Java,Android,Listener,我正在集成一个Android ad SDK,它实现了许多侦听器。有些侦听器在我的应用程序中没有启动。例如,OnAddLoaded将启动,但OnAddSplayed不会启动。这在SDK提供的示例应用程序中运行得非常好,这导致人们认为这是集成的问题。然而,我找不到任何导致这个问题的原因。这绝对是我从未见过的奇怪行为。我知道我在这里抓救命稻草,但是假设说一些听众没有注册而其他人注册的原因是什么?我如何调试这个 下面是一些代码: ad = new InterstitialAd(lastA

我正在集成一个Android ad SDK,它实现了许多侦听器。有些侦听器在我的应用程序中没有启动。例如,OnAddLoaded将启动,但OnAddSplayed不会启动。这在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();

我终于明白了原因。我对SDK进行了反编译,以便仔细查看。包名被硬编码到一些与非触发侦听器相关的条件中。我在构建脚本中重构了它们的包名,但脚本忽略了字符串。因此,由于软件包名称已更改,它们自然不会触发。

如果onAdLoaded出现问题,则可能是显示问题,如果SDK认为广告未完全显示,则不会调用此命令。你能发布一些XML吗?你在使用
com.google.android.gms.ads.alad
?如果是这样,则
setAdListener
需要一个
AdListener
对象,该对象不定义
onInterstitialDisplayed
oninterstitialdisposed
,因此它将解释为什么它们从未被激发。。。