我正在集成一个实现多个侦听器的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();
答案 0 :(得分:1)
我终于找到了原因。我反编译SDK以仔细查看。包名称被硬编码到与非触发侦听器相关的一些条件中。我在构建脚本中重构了他们的包名,但脚本忽略了字符串。因此包装名称已经改变,所以他们自然不会开火。